java xml解析工具

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wzl1369248650/article/details/50787460

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文件此处就不张贴上来,相关详情可以下载源代码看看

猜你喜欢

转载自blog.csdn.net/wzl1369248650/article/details/50787460
今日推荐