Javabeanはxstreamパッケージに基づいてXMLドキュメントを転送する方法を実現します。


本論文の実例は、Javabeanがxstreamパッケージに基づいてXMLドキュメントを転送する方法を説明する。皆さんに参考にしてあげます。具体的には以下の通りです。
1.必要なJarバッグ:
xpp 3_ミニ.jar
xstream.jar
この駅はダウンロードです。
この二つのjarをプロジェクトに追加します。
2.テスト用のjavabeanを2つ追加します。ProvinceとCity

class Province
{
  private String name;//   
  private List<City> cities = new ArrayList<City>();
  public String getName()
  {
    return name;
  }
  public void setName(String name)
  {
    this.name = name;
  }
  public List<City> getCities()
  {
    return cities;
  }
  public void setCities(List<City> cities)
  {
    this.cities = cities;
  }
  public void addCity(City city)
  {
    cities.add(city);
  }
}
class City
{
  private String name;//   
  private String description;//   
  private String[] counties; //       
  public String getName()
  {
    return name;
  }
  public void setName(String name)
  {
    this.name = name;
  }
  public String[] getCounties()
  {
    return this.counties;
  }
  public void setCounties(String[] countries)
  {
    this.counties = countries;
  }
  public String getDescription()
  {
    return description;
  }
  public void setDescription(String description)
  {
    this.description = description;
  }
  @Override
  public String toString()
  {
    return "City [name=" + name + ", description=" + description + "]";
  }
  public City()
  {
    super();
  }
  public City(String name, String description)
  {
    super();
    this.name = name;
    this.description = description;
  }
}

XStreamは、生成されたxml文書を文字列で返す方法toXMLを提供しています。
XStream((zhi alias)()メソッドは、生成要素のTag名を変更することができ、Tag名を設定しないと、クラスの文字列形式でTag名として扱われます。例えば、Java.lang.String。
XStream(※)メソッドは、Javabeanの属性をxml元素の属性に変換することができます。
XStreamメソッドは、ListのようなJavabeanの集合要素を、それぞれの要素の中の要素が直接にサブ要素に変化し、これらのサブ要素の親要素として別の要素を生成することなく、Javabeanのセット要素にすることができる。
XStream((zhi addImplicitAray)方法はaddImplicit Collectionと同じで、ただ集合して配列になります。
以下はテストコードです。

package com.song.demo;
import java.util.ArrayList;
import java.util.List;
import com.thoughtworks.xstream.XStream;
public class BeanToXml
{
  public static void main(String[] args)
  {
    //     JavaBean
    List<Province> proList = new ArrayList<Province>();
    //    
    Province gdProvince = new Province();
    gdProvince.setName("   ");
    City gzCity = new City("   ", "     ");
    gzCity.setCounties(new String[]{"   ", "   ", "   "});
    gdProvince.addCity(gzCity);
    gdProvince.addCity(new City("  ", "    "));
    //    
    Province bjProvince = new Province();
    bjProvince.setName("   ");
    bjProvince.addCity(new City("   ", "      "));
    bjProvince.addCity(new City("   ", "      "));
    proList.add(gdProvince);
    proList.add(bjProvince);
    //          xml
    // System.out.println(toXML1(proList));
    //   JavaBean      ,       
    System.out.println(toXml2(proList));
  }
  private static String toXml2(Object obj)
  {
    XStream stream = new XStream();
    //   List          
    stream.alias("  ", List.class);
    stream.alias("  ", Province.class);
    stream.alias("  ", City.class);
    stream.alias(" - ", String.class);
    //  Province   name          
    stream.useAttributeFor(Province.class, "name");
    //  JavaBean             ,           ,           :
    //  :
    /*
     * <cities>
     * <city />
     * <city />
     * </cities>
     *
     *    :
     * <city />
     * <city />
     */
    //     :cities List  
    stream.addImplicitCollection(Province.class, "cities");
    //     :counties String[]   
    stream.addImplicitArray(City.class, "counties");
    return stream.toXML(obj);
  }
}

テスト結果:

<  >
 <   name="   ">
  <  >
   <name>   </name>
   <description>     </description>
   < - >   </ - >
   < - >   </ - >
   < - >   </ - >
  </  >
  <  >
   <name>  </name>
   <description>    </description>
  </  >
 </  >
 <   name="   ">
  <  >
   <name>   </name>
   <description>      </description>
  </  >
  <  >
   <name>   </name>
   <description>      </description>
  </  >
 </  >
</  >

PS:ここでxml操作に関するオンラインツールをいくつか提供します。参考にしてください。
オンラインXML/JSON相互変換ツール:
http://tools.jb51.net/code/xmljson
オンラインXML/オンライン圧縮XML:
http://tools.jb51.net/code/xmlformat
XMLオンライン圧縮/フォーマットツール:
http://tools.jb51.net/code/xml_フォーマットcompless
XMLコードオンラインフォーマット美化ツール:
http://tools.jb51.net/code/xmlcodeformat
javaアルゴリズムに関する詳細について興味がある読者は、当駅のテーマを見ることができます。「Javaデータ構造とアルゴリズム教程」、「Java操作DOMノード技術のまとめ」、「Javaファイルとディレクトリの操作テクニックのまとめ」、「Javaキャッシュ操作テクニックのまとめ
本論文で述べたように、皆さんのjavaプログラムの設計に役に立ちます。