dom4j解析xml文件简单版

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 1. 获取xml信息/*** 获取xml信息* @param filename 文件相对路径*/public static Document load(String filename) { Document document = null; try { S...

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 相关操作
    }    
}
目录
相关文章
|
3月前
|
JavaScript 前端开发 Go
CSS 与 JS 对 DOM 解析和渲染的影响
【10月更文挑战第16天】CSS 和 JS 会在一定程度上影响 DOM 解析和渲染,了解它们之间的相互作用以及采取适当的优化措施是非常重要的。通过合理的布局和加载策略,可以提高网页的性能和用户体验,确保页面能够快速、流畅地呈现给用户。在实际开发中,要根据具体情况进行权衡和调整,以达到最佳的效果。
|
3月前
|
XML Web App开发 JavaScript
XML DOM 解析器
XML DOM 解析器
|
3月前
|
JavaScript 前端开发 算法
React 虚拟 DOM 深度解析
【10月更文挑战第5天】本文深入解析了 React 虚拟 DOM 的工作原理,包括其基础概念、优点与缺点,以及 Diff 算法的关键点。同时,分享了常见问题及解决方法,并介绍了作者在代码/项目上的成就和经验,如大型电商平台的前端重构和开源贡献。
73 3
|
3月前
|
XML Web App开发 JavaScript
XML DOM 解析器
XML DOM 解析器
|
3月前
|
XML Java 数据格式
手动开发-简单的Spring基于XML配置的程序--源码解析
手动开发-简单的Spring基于XML配置的程序--源码解析
98 0
|
3月前
|
XML JavaScript 数据格式
XML DOM 遍历节点树
XML DOM 遍历节点树
|
3月前
|
JavaScript
DOM 节点列表长度(Node List Length)
DOM 节点列表长度(Node List Length)
|
3月前
|
JavaScript
HTML DOM 节点树
HTML DOM 节点是指在 HTML 文档对象模型中,文档中的所有内容都被视为节点。整个文档是一个文档节点,每个 HTML 元素是元素节点,元素内的文本是文本节点,属性是属性节点,注释是注释节点。DOM 将文档表示为节点树,节点之间有父子和同胞关系。
|
3月前
|
JavaScript
HTML DOM 节点
HTML DOM(文档对象模型)将HTML文档视为节点树,其中每个部分都是节点:文档本身是文档节点,HTML元素是元素节点,元素内的文本是文本节点,属性是属性节点,注释是注释节点。节点间存在父子及同胞关系,形成层次结构。
|
3月前
|
XML JavaScript 数据格式
XML DOM 遍历节点树
XML DOM 遍历节点树

推荐镜像

更多