Dieser Artikel stellt hauptsächlich die Javabean-Methode zum Konvertieren von XML-Dokumenten basierend auf dem xstream-Paket vor. Er analysiert die spezifischen Verwendungsfähigkeiten des xstream-Pakets zum Konvertieren von XML-Dateien anhand spezifischer Beispiele zu Folgendem
Das Beispiel in diesem Artikel beschreibt, wie Javabean XML-Dokumente basierend auf dem xstream-Paket konvertiert. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:
1. Erforderliches Jar-Paket:
xpp3_min.jar
xstream.jar
Diese Seite Download-Adresse .
Fügen Sie diese beiden Gläser zum Projekt hinzu
2. Fügen Sie zwei Javabeans zum Testen hinzu: Provinz und Stadt
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 stellt die Methode toXML bereit (Object obj), das das generierte XML-Dokument in Form von String zurückgibt. Die Methode
XStream#alias() kann den Tag-Namen des generierten Elements ändern. Wenn der Tag-Name nicht festgelegt ist, wird die Zeichenfolgenform der Klasse als Tag-Name verwendet, z. B.: Java.lang .String. Die Methode
XStream#useAttributeFor() kann das -Attribut der Javabean in das Attribut des XML-Elements konvertieren.
Die Methode XStream#addImplicitCollection() kann jedes Element in einem Javabean-Sammlungselement, wie z. B. List, direkt in ein Unterelement umwandeln, ohne ein anderes Element zu generieren, das als diese Unterelemente dient. Die Methode
XStream#addImplicitArray() ist dieselbe wie addImplicitCollection(), außer dass die Sammlung zu einem Array wird.
Das Folgende ist der Testcode:
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); } }
Testergebnis:
<中国> <省份 name="广东省"> <城市> <name>广州市</name> <description>广东省省会</description> <区-县>海珠区</区-县> <区-县>天河区</区-县> <区-县>白云区</区-县> </城市> <城市> <name>韶关</name> <description>粤北城市</description> </城市> </省份> <省份 name="北京市"> <城市> <name>东城区</name> <description>北京市东城区</description> </城市> <城市> <name>西城区</name> <description>北京市西城区</description> </城市> </省份> </中国>
Das obige ist der detaillierte Inhalt vonXML-Dokumentkonvertierungsmethode, implementiert in Javabean basierend auf dem xstream-Paket. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!