您现在的位置是:首页 > 文章详情

dom4j解析xml文件简单版

日期:2019-09-27点击:495

1. 获取xml信息

/** * 获取xml信息 * @param filename 文件相对路径 */ public static Document load(String filename) { Document document = null; try { SAXReader saxReader = new SAXReader(); //使用spring的文件读取方法:org.springframework.core.io.Resource Resource resource = new ClassPathResource(filename); document = saxReader.read(resource.getFile()); // 读取XML文件,获得document对象 } catch (Exception ex) { ex.printStackTrace(); } return document; } 

reader的read方法是重载的,可以从InputStream, File, Url等多种不同的源来读取。得到的Document对象就代表了整个XML。
读取的字符编码是按照XML文件头定义的编码来转换。如果遇到乱码问题,注意要把各处的编码名称保持一致即可

获取根节点

root元素是xml文档的根节点。一切XML分析都是从Root元素开始的

#获取xml文档 Document document = load("conf/test.xml"); #获取xml的根节点 Element root = document.getRootElement();

2. 常用到的方法

#获得根元素下的所有子节点。 List<Element> elementList=root.elements(); #获得element节点的名字 String elementName=element.getName(); #获得element节点的文本节点值 String elementValue=element.getText(); #获得element节点的属性 Attribute attribute=element.attribute(); #获得属性值 String attrValue=element.attributeValue("attrName");

3. xml遍历

xml节点的遍历有如下方式:

//方式一: 枚举所有子节点 for ( Iterator i = root.elementIterator(); i.hasNext(); ) { Element element = (Element) i.next(); //TODO 获取相关节点信息和操作 } //方式二: 枚举名称为foo的节点 for ( Iterator i = root.elementIterator(foo); i.hasNext();) { Element foo = (Element) i.next(); //TODO 获取相关节点信息和操作 } //方式三 枚举属性 for ( Iterator i = root.attributeIterator(); i.hasNext(); ) { Attribute attribute = (Attribute) i.next(); //TODO 获取相关节点信息和操作 } //方式四: 循环遍历子节点 List<Element> elementList=root.elements(); for(int i=0;i<elementList.size(); i++){ Element element = (Element) elementList.get(i); //TODO 获取相关节点信息和操作 //子节点遍历 List elementRoot = element.elements(); //判断是否存在子节点 if(null!=elementRoot && elementRoot.size()>0){ //递归调用此方法 //TODO 相关操作 } }
原文链接:https://yq.aliyun.com/articles/719661
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章