<?xml version="1.0" encoding="iso-8859-1"?>
<tree id="0">
<item text="Lawrence Block" id="t2_lb" im0="folderClosed.gif" im1="folderOpen.gif" im2="folderClosed.gif">
<item text="All the Flowers Are Dying" id="lb_1" im0="book_titel.gif" im1="book_titel.gif" im2="book_titel.gif"/>
<item text="The Burglar on the Prowl" id="lb_2" im0="book_titel.gif" im1="book_titel.gif" im2="book_titel.gif"/>
<item text="The Plot Thickens" id="lb_3" im0="book_titel.gif" im1="book_titel.gif" im2="book_titel.gif"/>
<item text="Grifter Game" id="lb_4" im0="book_titel.gif" im1="book_titel.gif" im2="book_titel.gif"/>
<item text="The Burglar Who Thought He Was Bogart" id="lb_5" im0="book_titel.gif" im1="book_titel.gif" im2="book_titel.gif"/>
</item>
<item text="Robert Crais" id="t2_rc" open="1" im0="folderClosed.gif" im1="folderOpen.gif" im2="folderClosed.gif">
<item text="The Forgotten Man" id="rc_1" im0="book_titel.gif" im1="book_titel.gif" im2="book_titel.gif"/>
<item text="Stalking the Angel" id="rc_2" im0="book_titel.gif" im1="book_titel.gif" im2="book_titel.gif"/>
<item text="Free Fall" id="rc_3" im0="book_titel.gif" im1="book_titel.gif" im2="book_titel.gif"/>
<item text="Sunset Express" id="rc_4" im0="book_titel.gif" im1="book_titel.gif" im2="book_titel.gif"/>
<item text="Hostage" id="rc_5" im0="book_titel.gif" im1="book_titel.gif" im2="book_titel.gif"/>
</item>
<item text="Dan Brown" id="t2_db" im0="folderClosed.gif" im1="folderOpen.gif" im2="folderClosed.gif">
<item text="Angels & Demons" id="db_1" im0="book_titel.gif" im1="book_titel.gif" im2="book_titel.gif"/>
<item text="Deception Point" id="db_2" im0="book_titel.gif" im1="book_titel.gif" im2="book_titel.gif"/>
<item text="Digital Fortress" id="db_3" im0="book_titel.gif" im1="book_titel.gif" im2="book_titel.gif"/>
<item text="The Da Vinci Code" id="db_4" im0="book_titel.gif" im1="book_titel.gif" im2="book_titel.gif"/>
<item text="Deception Point" id="db_5" im0="book_titel.gif" im1="book_titel.gif" im2="book_titel.gif"/>
</item>
<item text="Joss Whedon" id="t2_jw" im0="folderClosed.gif" im1="folderOpen.gif" im2="folderClosed.gif">
<item text="Astonishing X-Men" id="jw_1" im0="book_titel.gif" im1="book_titel.gif" im2="book_titel.gif"/>
<item text="Joss Whedon: The Genius Behind Buffy" id="jw_2" im0="book_titel.gif" im1="book_titel.gif" im2="book_titel.gif"/>
<item text="Fray" id="jw_3" im0="book_titel.gif" im1="book_titel.gif" im2="book_titel.gif"/>
<item text="Tales Of The Vampires" id="jw_4" im0="book_titel.gif" im1="book_titel.gif" im2="book_titel.gif"/>
<item text="The Harvest" id="jw_5" im0="book_titel.gif" im1="book_titel.gif" im2="book_titel.gif"/>
</item>
</tree>我有一个类 Item ,他有text、id、im0、im1、im2,items 这几个属性
其中items是一个List<Item>类型,其他都是string类型 ,如何通过这个对象生成上面的xml格式
<java version="1.6.0_22" class="java.beans.XMLDecoder">
<object id="Item0" class="test.Item">
<void property="id">
<string>t2_lb</string>
</void>
<void property="items">
<object class="java.util.ArrayList">
<void method="add">
<object idref="Item0"/>
</void>
<void method="add">
<object idref="Item0"/>
</void>
<void method="add">
<object idref="Item0"/>
</void>
<void method="add">
<object idref="Item0"/>
</void>
<void method="add">
<object idref="Item0"/>
</void>
<void method="add">
<object idref="Item0"/>
</void>
<void method="add">
<object idref="Item0"/>
</void>
<void method="add">
<object idref="Item0"/>
</void>
<void method="add">
<object idref="Item0"/>
</void>
<void method="add">
<object idref="Item0"/>
</void>
</object>
</void>
<void property="text">
<string>Lawrence Block</string>
</void>
</object>
</java>
Element root = doc.addElement("tree");//root节点
root.addAttribute("id", "0");//属性
循环Item
Element e = root.addElement("item")
e.addAttribute("text", "Lawrence Block");
循环items
Element e1 = e.addElement("items")
....写入..
package xml;import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;import util.entity.GameVO;/**
* 将一个对象转换为xml,利用dom4j
* @author xhf
*
*/
public class BeanToXML {
public static Document beanToXMLTest(GameVO gamevo) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException, SecurityException, InstantiationException, NoSuchMethodException
{
Document document=DocumentHelper.createDocument();
document.addElement("root");
Element root=document.getRootElement();
Field[] fields=gamevo.getClass().getDeclaredFields();
for (int i = 0,len=fields.length; i <len; i++) {
Method method=gamevo.getClass().getMethod("get"+fields[i].getName().substring(0,1).toUpperCase()+fields[i].getName().substring(1, fields[i].getName().length()));
root.addElement(fields[i].getName()).setText((String)method.invoke(gamevo));
}
return document;
}
public static void main(String[] args) {
GameVO gamevo=new GameVO();
gamevo.setCardFlag("1");
gamevo.setChannel_ID("25070000");
gamevo.setCpID("C00043");
gamevo.setCpServiceID("110221657000");
gamevo.setFee("1");
gamevo.setGameEntityID("34167");
gamevo.setMsisdn("15850686312");
gamevo.setUaID("335311");
gamevo.setOprNumb("opr1");
gamevo.setPackageID("500230544000");
gamevo.setSender("202");
gamevo.setTest("test");
try {
System.out.println(BeanToXML.beanToXMLTest(gamevo).asXML());
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchMethodException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}}