dom4j解析xml文件简单版

简介: 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 相关操作
    }    
}
目录
相关文章
|
9天前
|
存储 Java API
Android 浅度解析:mk预置AAR、SO文件、APP包和签名
Android 浅度解析:mk预置AAR、SO文件、APP包和签名
52 0
|
9天前
|
XML 数据格式
小米备份descript.xml文件
小米备份descript.xml文件
13 0
|
2天前
|
前端开发 JavaScript 数据安全/隐私保护
前端javascript的DOM对象操作技巧,全场景解析(二)
前端javascript的DOM对象操作技巧,全场景解析(二)
|
2天前
|
移动开发 缓存 JavaScript
前端javascript的DOM对象操作技巧,全场景解析(一)
前端javascript的DOM对象操作技巧,全场景解析(一)
|
3天前
|
XML Web App开发 JavaScript
XML DOM 解析器
大多数浏览器内置XML解析器,用于将XML转换为JavaScript可操作的DOM对象。解析器提供遍历、修改XML节点的功能。以下JS代码示例展示了如何加载XML文档:&quot;books.xml&quot;,通过XMLHttpRequest或ActiveXObject发送请求,获取响应并转化为DOM对象。
|
5天前
|
移动开发 数据可视化 Linux
Linux 中的文件与目录管理解析
当谈到Linux系统,文件与目录管理是其中最基本和重要的部分之一。Linux提供了一种强大而灵活的方式来组织和管理文件和目录,让用户能够轻松地访问和操作系统中的各种数据。上一节我们说到文件的属性,本文将详细介绍Linux中的文件与目录管理的各个方面。
|
5天前
|
Linux Go 数据安全/隐私保护
Linux 中的文件属性解析
在 Linux 系统中,每个文件和目录有一组属性控制其操作和访问权限。了解这些属性对有效管理文件至关重要。文件属性包括:文件类型(如 `-` 表示普通文件,`d` 表示目录),权限(如 `rwx` 表示所有者权限,`r-x` 表示组和其他用户权限),所有者,组,硬链接数,文件大小和最后修改时间。通过 `chown` 和 `chmod` 命令可更改文件所有者、所属组及权限。此外,还有特殊权限(如 SUID、SGID)和 ACL(访问控制列表)提供更精细的访问控制。
|
5天前
|
XML 存储 数据格式
探索 DTD 在 XML 中的作用及解析:深入理解文档类型定义
DTD(文档类型定义)用于定义XML文档的结构和合法元素、属性。它允许不同团体就数据交换标准达成一致,并用于验证XML数据的有效性。DTD可通过内部声明(在XML文档内)或外部声明(在单独文件中)来定义。内部声明示例显示了如何定义`note`元素及其子元素的结构,而外部声明则引用外部DTD文件。元素、属性、实体和PCDATA/CDATA是XML构建模块。DTD中,元素通过ELEMENT声明定义,属性通过ATTLIST声明定义,实体声明提供特殊字符或外部资源的快捷方式。
9 0
|
9天前
|
XML Java 数据库连接
Javaweb之Mybatis的XML配置文件的详细解析
Javaweb之Mybatis的XML配置文件的详细解析
13 0
|
9天前
|
JavaScript 前端开发 UED
深入解析JavaScript原生操作DOM技术
【4月更文挑战第22天】本文深入探讨JavaScript原生DOM操作技术,包括使用`getElement*`方法和CSS选择器获取元素,借助`createElement`与`appendChild`动态创建及插入元素,修改元素内容、属性和样式,以及删除元素。通过掌握这些技术,开发者能实现页面动态交互,但应注意避免过度操作DOM以优化性能和用户体验。

推荐镜像

更多