java xml解析工具
2016-03-03 11:57
351 查看
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文件此处就不张贴上来,相关详情可以下载源代码看看
相关文章推荐
- Java 对象属性的遍历
- 【JAVA】别特注意,POI中getLastRowNum() 和getLastCellNum()的区别
- java中&& 、|| 操作的捷径
- Java WebService 简单实例
- Java多线程之concurrent包(二)——线程安全集合
- Java排序算法总结之(四)——归并排序
- 【leetcode】【90】Subsets II
- MapReduce分布式缓存程序,无法在Windows下的Eclipse中执行问题解决
- 编写类与子类时的偷懒~~
- ValueStack、OGNL和Struts2标签
- Leetcode:263. Ugly Number(JAVA)
- eclipse调试java程序的九个技巧
- Java中静态成员
- Java中的静态内部类与非静态内部类的区别
- java加时间
- ECLIPSE下SVN的创建分支/合并/切换使用
- win7上使用eclipse阅读hadoop源码准备
- JNI————C中调用JAVA方法错误和注意的地方
- Java泛型类型参数的界限
- Leetcode:70. Climbing Stairs(JAVA)