只要使用XStream,就不可能直接轉換它。如果您想使用XStream,則需要創建與XML元素對應的類。
[讀取]
XStream xs = new XStream(new DomDriver());
xs.alias("root", ParentElement.class);
xs.useAttributeFor(ChildElement.class, "aaa"); // read as attribute
xs.useAttributeFor(ChildElement.class, "bbb");
ParentElement parent = new ParentElement();
try {
FileInputStream fis = new FileInputStream("readfile");
xs.fromXML(fis, parent);
} catch (FileNotFoundException ex) {
ex.printStackTrace();
}
[寫]
ChildElement element = new ChildElement();
element.setAttr1("aaa");
element.setAttr2("bbb");
ParentElement parent = new ParentElement();
parent.setChildElement(element);
XStream xs = new XStream();
xs.alias("root", ParentElement.class);
try {
FileOutputStream fs = new FileOutputStream("writefile");
xs.toXML(parent, fs);
} catch (FileNotFoundException e1) {
e1.printStackTrace();
}
[ParentElement]
public class ParentElement {
private ChildElement abc;
public void setChildElement(ChildElement child) {
this.abc = child;
}
}
[是childElement]
public class ChildElement {
private String attr1;
private String attr2;
public String getAttr1() {
return attr1;
}
public void setAttr1(String attr1) {
this.attr1 = attr1;
}
public String getAttr2() {
return attr2;
}
public void setAttr2(String attr2) {
this.attr2 = attr2;
}
}
XStream不是此工作的工具。 XStream是一個對象綁定框架。這是XSLT的工作。 – skaffman 2010-12-15 19:28:04
我從來沒有使用過XSLT,如果您有任何問題,請指點我的示例鏈接? – Shah 2010-12-15 19:36:00
Google for'xslt「將屬性轉換爲元素」',其中大量命中 – skaffman 2010-12-15 20:13:11