1. 程式人生 > >java xml解析工具

java xml解析工具

wxml工具 ## 現在為大家介紹個自己製作的xml解析工具:wxml。這塊工具可以自動的將xml和java類進行相互的轉換,

  整個過程可能只需要1-2行程式碼。當然jaxb也是可以完成這樣的功能的,不過我個人認為我的工具更簡單些。不說這麼多,看程式碼。

使用方式:1.非註解方式對映規則:將java類中的屬性對映成xml的元素(如果要對映成屬性需要開啟註解)

2.註解方式:預設是不開啟註解的,需要執行WxmlFactory.setAnnotation(true);手動設定開啟。
常用的註解有:(1)@WxmlRootElement(使用在類名上,必須的,如果開啟註解後類沒這個註解會報錯)
(2)@WxmlElement(使用在類屬性上,表示對映成xml元素。可以設定所需要對映的元素名,如果沒有此標籤或@WxmlAttribute,則該屬性不會被對映)
(3)@WxmlAttribute(使用在類屬性上,表示對映成xml元素的屬性。可以設定所需要對映的元素屬性名,如果沒有此標籤或@WxmlElement,則該屬性不會被對映)
(4)@ParentElement(使用在類屬性上,表示元素的父元素。)

下載
文件
@Test
public void testXmlToList() throws DocumentException, WxmlException{
Document doc=XmlParseUtil.readClassPath(“/indi/wzl/test/resource/test.xml”);
List list = WxmlFactory.parseList(doc, “data”, TestData.class);
System.out.println(JSON.toJSONString(list));
}
將xml解析成list集合

@Test
public void testXmlToBean() throws WxmlException, DocumentException{
Document doc=XmlParseUtil.readClassPath(“/indi/wzl/test/resource/testList.xml”);
//設定啟動annotation,預設是不啟動
WxmlFactory.setAnnotation(true);
TestBean tb = (TestBean) WxmlFactory.parse(TestBean.class, doc);
System.out.println(JSON.toJSONString(tb));
}
將xml解析成bean

@Test
public void testXmlToListMap() throws DocumentException, WxmlException{
Document doc=XmlParseUtil.readClassPath(“/indi/wzl/test/resource/test.xml”);
List list = WxmlFactory.parseList(doc, “data”,Map.class);
System.out.println(JSON.toJSONString(list));
}
將xml解析成更復雜的list
集合

@Test
public void testBeanToXml() throws WxmlException{
TestBean2 t = new TestBean2();
t.setChannel(“1”);
t.setTest(“3”);
t.setVersion(“1.0”);
String str = WxmlFactory.toXml(t,”root”);
System.out.println(“s:”+str);
}
將java類轉換成xml

@Test
public void testAnnotationToXml() throws WxmlException{
TestBean2 t = new TestBean2();
t.setChannel(“1”);
t.setTest(“3”);
t.setVersion(“1.0”);
WxmlFactory.setAnnotation(true);
String str = WxmlFactory.toXml(t,”root”);
System.out.println(“s:”+str);
}
開啟annotation方式轉換成xml

@Test
public void testToXmlMap() throws WxmlException{
Map map = new HashMap();
map.put(“k1”,”v1”);
map.put(“k2”,”v2”);
map.put(“k3”,”v3”);
map.put(“k4”,”v4”);
String str = WxmlFactory.toXml(map,”root”);
System.out.println(“s:”+str);
}
將map轉換成xml

@Test
public void testBeanToXml2() throws WxmlException{
TestBean2 t = new TestBean2();
t.setChannel(“1”);
t.setTest(“3”);
t.setVersion(“1.0”);

List list = new ArrayList();
TestData data = new TestData();
data.setBigmaplink(“1”);
data.setCategory(“2”);
data.setCategoryname(“s”);
TestData data2 = new TestData();
data2.setBigmaplink(“1”);
data2.setCategory(“2”);
data2.setCategoryname(“s”);
list.add(data);
list.add(data2);
t.setData(list);

Map map = new HashMap();
map.put(“k1”,”v1”);
map.put(“k2”,”我的”);
map.put(“k3”,”v3”);
map.put(“k4”,”v4”);
t.setMap(map);
//設定啟動annotation
WxmlFactory.setAnnotation(true);
String str = WxmlFactory.toXml(t,”root”);
System.out.println(“s:”+str);
}

相關的xml檔案此處就不張貼上來,相關詳情可以下載原始碼看看