解析xml文件,如何动态的封装成一个java类
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解析xml文件,如何动态的封装成一个java类相关的知识,希望对你有一定的参考价值。
要看你的xml文件是什么格式,可以针对某个结构的xml文件封装一个解析类如果不依赖xml文件的格式,只是封装操作xml的方法,这个网上一大堆,用dom4j或jdom都可以 参考技术A 用java反射
如何根据xml和schema文件生成java类(用程序实现)!
1:传递过来的xml为string类型的一个串。
2:schema作用是:(用于验证xml是否符合自定义的规范:如长度)
3:验证通过之后,需要进行根据xml的值赋给生成的java类。
程序急用!大神帮忙写个demo!!
验证应该好写吧,主要是解析xml
可以使用工具包dom4j
类似例子
dom4j参见http://javacrazyer.iteye.com/blog/727298
public static void readXML() throws DocumentExceptionSAXReader sr = new SAXReader();// 获取读取xml的对象。
Document doc = sr.read("src/com/pzr/test/zhidao/test.xml");// 得到xml所在位置。然后开始读取。并将数据放入doc中
Element el_root = doc.getRootElement();// 向外取数据,获取xml的根节点。
Iterator it = el_root.elementIterator();// 从根节点下依次遍历,获取根节点下所有子节点
while (it.hasNext()) // 遍历该子节点
Object o = it.next();// 再获取该子节点下的子节点
Element el_row = (Element) o;
String s = el_row.getText();
Iterator it_row = el_row.elementIterator();
while (it_row.hasNext()) // 遍历节点
Element el_ename = (Element) it_row.next();// 获取该节点下的所有数据。
System.out.println(el_ename.getText());
追问
主要是生成java类这里。不是解析。如何将一个验证过的xml或者生成java类!这是我不会的地方!
追答Java类是动态生成的吗还是已经有一个Java类来接xml中的值
追问就是我这个java类,不自己写,需要动态生成,然后还可以接受这个xml传递过来的值。
追答哦,明白了,动态生成类的话没实现过,不知道反射能实现不,如果xml的格式定死的话,建议建一个实际类来装解析的数据
追问你说的这个模式就是我现在程序的设计模式,现需要增加一个验证传递过来的xml中的值长度以及一些其他验证性的功能。不符合就不继续操作了。而人家传递过来的肯定是xml。所以需要schema验证,改变我这个系统的原有设计模式。并且原来写的javabean需要动态生成且赋值,而不是自己写的了!
追答表示技穷了,坐等楼下,抱歉啊。
追问依然感谢您!我也在研究,嘿嘿!
追答刚刚看了下,要动态建立JavaBean的话需要IO流生成Java文件,然后调用Javac编译,最后使用反射将类加载,这样就可以使用了。
貌似可行的方法,可以试试
可以看看这个,好像和你类似的问题http://bbs.csdn.net/topics/360001205
1:下载jaxb包 jaxb 2_1_9.zip ,在本博客中可以下载得到。解压后得到四个目录,包含bin、lib 、docs、example
2:在"cmd"里进入到bin目录,如C:/>cd C:/jaxb2.1.9/bin 回车
3:输入xjc c:/students.xsd -d c:/src -p com.entity 回车
注:-d 说明要生成的java类存放目录
-p 为生成java类指定的包名
students.xsd 为自己定义的Schema 参考技术B jdk自带的xjc可以从schema生成java类
以上是关于解析xml文件,如何动态的封装成一个java类的主要内容,如果未能解决你的问题,请参考以下文章
如何根据xml和schema文件生成java类(用程序实现)!
java解析xml文件,会把节点属性中的换行转换成空格,怎样才能避免此类转换,即保留换行