例如有这么一个xml文件data4.xml
<?xml version="1.0" encoding="UTF-8"?>
<aaaa>
<bbbb>
<cccc>
<dddd>
<username>aaa</username>
</dddd>
<dddd>
<username>bbb</username>
</dddd>
</cccc>
</bbbb>
</aaaa>
总共有4层,我们的目标是读取到username
package wzq.j2se.xml;
import java.util.Iterator;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.xml.sax.InputSource;
public class Dom4j4 {
public static void main(String[] args) {
try{
InputSource is = new InputSource("http://localhost/data4.xml");
SAXReader reader = new SAXReader();
reader.setEncoding("utf-8");
/*File f = new File("D:\\androidspace\\javanote\\src\\wzq\\j2se\\xml\\data4.xml");
Document doc = reader.read(f); */
Document doc = reader.read(is);
Dom4j4 j1 = new Dom4j4();
Element rootElt = doc.getRootElement(); // 获取根节点
System.out.println("根节点:" + rootElt.getName()); // 拿到根节点的名称
Iterator bbbb = rootElt.elementIterator("bbbb"); ///获取根节点下的子节点bbbb
// 遍历bbbb节点
while (bbbb.hasNext()) {
Element recordEless = (Element) bbbb.next();
Iterator cccc = recordEless.elementIterator("cccc"); // 获取子节点bbbb下的子节点cccc
while (cccc.hasNext()) {
Element itemEle = (Element) cccc.next();
Iterator dddd = itemEle.elementIterator("dddd");
while(dddd.hasNext()){
Element tableItem = (Element) dddd.next();
String username = tableItem.elementTextTrim("username"); // 拿到dddd下的字节点username的值
System.out.println("username:" + username);
}
}
}
}catch(Exception e){
e.printStackTrace();
}
}
}
注意注释部份,读取xml文件的方式还可以是以File的方式读取。
本文来自:http://wang09si.blog.163.com/blog/static/17017180420132123451693/
相关推荐
在处理复杂的、多层结构的XML时,DOM4J是一个强大的Java库,它提供了丰富的API来帮助我们解析和操作XML文档。本教程将深入探讨如何使用DOM4J解析多层次的XML,并将其数据保存到实体类中。 首先,了解DOM4J的基本...
### DOM4J解析XML知识点详解 #### 一、XML与DOM4J概述 - **XML简介**:XML(Extensible Markup Language,可扩展标记语言)是由W3C(World Wide Web Consortium,万维网联盟)定义的一种标准语言,用于描述数据。...
DOM解析适用于小型XML文件,因为其将整个XML加载到内存,对于大型XML文件可能会导致性能问题和内存消耗过大。 **Pull解析** Pull解析,全称为XML Pull解析,是一种事件驱动的解析方式。它不需要将整个XML文档加载到...
DOM解析器会将整个XML文件加载到内存中,形成一个树形结构,适合处理小到中等规模的XML文档。而SAX解析器采用事件驱动的方式,逐行读取XML文件,适合处理大型XML文件以避免内存消耗。 对于多级XML,DOM解析更便于...
1. **导入库**:使用DOM解析XML时,我们需要导入javax.xml.parsers和org.w3c.dom相关的库。例如: ```java import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.DocumentBuilder; ...
不过,DELPHI 7默认没有提供SAX解析器,但可以通过第三方库如XML4Delphi来实现。 5. **XML Schema验证**: 如果有XML Schema(XSD)文件定义了XML文档的结构,我们可以使用XMLDocument的`ValidateOnParse`属性来验证...
SAX是事件驱动的解析器,适合处理大文件,而DOM则是将整个XML文档加载到内存中,形成一棵文档对象模型树,便于遍历和修改,但不适合处理大型XML文档。 对于嵌套的XML,JDOM提供了一种层次化的表示方法。例如,一个...
### 使用StAX组装与解析XML #### 一、引言 在处理XML文档时,Java提供了多种工具和技术,包括DOM、SAX以及本文将重点讨论的Streaming API for XML(简称StAX)。StAX是一种用于读取和写入XML数据的事件驱动型API,...
1. Java的DOM解析XML,构建树形数据结构。 2. 设计和实现无限层级的树形菜单数据模型。 3. 使用`JSTree`库在前端渲染树形菜单并实现交互功能。 4. JavaScript与Java后端的交互,如AJAX请求和数据转换。 5. `JSTree`...
例如,可以使用SAX解析器(事件驱动模型)而不是DOM解析器(整个文档加载到内存),以减少内存占用。 8. **测试与调试**:在实现XML到对象的转换后,需要编写测试用例来验证转换的正确性,包括边缘情况和异常情况。...
在XML和Map的转换过程中,可能用到了如`dom4j`或`jaxb`等库,它们提供了方便的XML操作API。这些库可以通过Maven引入,添加到项目的pom.xml文件中。例如,`dom4j`的依赖可以这样写: ```xml <groupId>dom4j ...
- **DOM解析器**:如libxml2库提供的DOM解析接口,可以创建一个DOM树,通过API访问节点属性。 - **SAX解析器**:如expat库,提供事件回调机制,处理XML流。 - **PULL解析器**:如Android中的XMLPullParser,允许...
在JavaScript(JS)中调用XML文件涉及到XMLHttpRequest对象或者现代浏览器中的fetch API,用于从服务器获取XML数据,然后通过DOM解析和操作这些数据。在处理XML文件时,特别是涉及多层属性和节点的情况,我们需要...
XML转JSON工具类,支持多层XML嵌套解析转JSON,采用dom4j解析转JSON格式,多次线上环境使用
可以写一个方法,接受XML字符串作为输入,使用XPath或DOM解析器来提取所需的数据,然后填充Map。 总的来说,Java中将XML转换为Map的过程涉及XML的解析、数据结构的映射以及转换策略的选择。根据实际需求,可以选择...
5. **dom4j.chm**:dom4j是一个流行的Java XML处理库,提供了灵活的DOM、SAX和XPath API。文档可能包括了XML解析、创建、修改、查询的方法,以及如何与Java集合框架集成的示例。 6. **副本(1)Spring Security 3 ...
1. **创建DOM解析器**: - 使用`DocumentBuilderFactory`创建一个`DocumentBuilder`对象,该对象负责读取XML文档并构建DOM树。 - 示例代码: ```java DocumentBuilderFactory dbf = DocumentBuilderFactory.new...
- 创建DOM树:使用QDomDocument的parse()方法解析XML字符串或文件,生成DOM树。 - 遍历DOM树:QDomElement代表XML元素,通过getElementsByTagName()、firstChildElement()、nextSiblingElement()等方法可以遍历...
总的来说,XML图书管理系统利用XML的强大功能,结合XPath进行数据查询,可能借助XSLT进行数据呈现,通过DOM或SAX解析XML,实现高效、灵活的图书信息管理。这个系统不仅提供了数据存储的解决方案,还为用户提供了便捷...
总结一下,XML转实体类和实体类转XML涉及的主要知识点有:Java反射API、XML解析(DOM、SAX、StAX、JAXB),以及对象的序列化和反序列化。在实际开发中,我们需要根据项目需求选择合适的工具和方法,确保数据的准确...