`
tcw290
  • 浏览: 22499 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

dom4j解析多层xml

 
阅读更多
例如有这么一个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解析.zip

    在处理复杂的、多层结构的XML时,DOM4J是一个强大的Java库,它提供了丰富的API来帮助我们解析和操作XML文档。本教程将深入探讨如何使用DOM4J解析多层次的XML,并将其数据保存到实体类中。 首先,了解DOM4J的基本...

    DOM4J 解析XML

    ### DOM4J解析XML知识点详解 #### 一、XML与DOM4J概述 - **XML简介**:XML(Extensible Markup Language,可扩展标记语言)是由W3C(World Wide Web Consortium,万维网联盟)定义的一种标准语言,用于描述数据。...

    Android应用源码之28.使用DOM和pull解析XML.zip

    DOM解析适用于小型XML文件,因为其将整个XML加载到内存,对于大型XML文件可能会导致性能问题和内存消耗过大。 **Pull解析** Pull解析,全称为XML Pull解析,是一种事件驱动的解析方式。它不需要将整个XML文档加载到...

    java 解析xml 多级

    DOM解析器会将整个XML文件加载到内存中,形成一个树形结构,适合处理小到中等规模的XML文档。而SAX解析器采用事件驱动的方式,逐行读取XML文件,适合处理大型XML文件以避免内存消耗。 对于多级XML,DOM解析更便于...

    xml解析 dom方式 例子和讲解

    1. **导入库**:使用DOM解析XML时,我们需要导入javax.xml.parsers和org.w3c.dom相关的库。例如: ```java import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.DocumentBuilder; ...

    DELPHI 解析XML的小程序

    不过,DELPHI 7默认没有提供SAX解析器,但可以通过第三方库如XML4Delphi来实现。 5. **XML Schema验证**: 如果有XML Schema(XSD)文件定义了XML文档的结构,我们可以使用XMLDocument的`ValidateOnParse`属性来验证...

    Jdom解析嵌套XML<一>

    SAX是事件驱动的解析器,适合处理大文件,而DOM则是将整个XML文档加载到内存中,形成一棵文档对象模型树,便于遍历和修改,但不适合处理大型XML文档。 对于嵌套的XML,JDOM提供了一种层次化的表示方法。例如,一个...

    用Stax组装及解析XML

    ### 使用StAX组装与解析XML #### 一、引言 在处理XML文档时,Java提供了多种工具和技术,包括DOM、SAX以及本文将重点讨论的Streaming API for XML(简称StAX)。StAX是一种用于读取和写入XML数据的事件驱动型API,...

    java解析xml动态生成树形菜单结构

    1. Java的DOM解析XML,构建树形数据结构。 2. 设计和实现无限层级的树形菜单数据模型。 3. 使用`JSTree`库在前端渲染树形菜单并实现交互功能。 4. JavaScript与Java后端的交互,如AJAX请求和数据转换。 5. `JSTree`...

    xml转对象封装的简单与复杂xml的转化写法

    例如,可以使用SAX解析器(事件驱动模型)而不是DOM解析器(整个文档加载到内存),以减少内存占用。 8. **测试与调试**:在实现XML到对象的转换后,需要编写测试用例来验证转换的正确性,包括边缘情况和异常情况。...

    java一键xml转map,一键map转xml工具类

    在XML和Map的转换过程中,可能用到了如`dom4j`或`jaxb`等库,它们提供了方便的XML操作API。这些库可以通过Maven引入,添加到项目的pom.xml文件中。例如,`dom4j`的依赖可以这样写: ```xml &lt;groupId&gt;dom4j ...

    解析XML的程序,可以读取节点属性。

    - **DOM解析器**:如libxml2库提供的DOM解析接口,可以创建一个DOM树,通过API访问节点属性。 - **SAX解析器**:如expat库,提供事件回调机制,处理XML流。 - **PULL解析器**:如Android中的XMLPullParser,允许...

    js调用xml文件的多层属性和节点

    在JavaScript(JS)中调用XML文件涉及到XMLHttpRequest对象或者现代浏览器中的fetch API,用于从服务器获取XML数据,然后通过DOM解析和操作这些数据。在处理XML文件时,特别是涉及多层属性和节点的情况,我们需要...

    XML转JSON工具类

    XML转JSON工具类,支持多层XML嵌套解析转JSON,采用dom4j解析转JSON格式,多次线上环境使用

    Java xml转化为map

    可以写一个方法,接受XML字符串作为输入,使用XPath或DOM解析器来提取所需的数据,然后填充Map。 总的来说,Java中将XML转换为Map的过程涉及XML的解析、数据结构的映射以及转换策略的选择。根据实际需求,可以选择...

    j2ee dom4j JavaScript struts2帮助文档

    5. **dom4j.chm**:dom4j是一个流行的Java XML处理库,提供了灵活的DOM、SAX和XPath API。文档可能包括了XML解析、创建、修改、查询的方法,以及如何与Java集合框架集成的示例。 6. **副本(1)Spring Security 3 ...

    dom生成xml文件

    1. **创建DOM解析器**: - 使用`DocumentBuilderFactory`创建一个`DocumentBuilder`对象,该对象负责读取XML文档并构建DOM树。 - 示例代码: ```java DocumentBuilderFactory dbf = DocumentBuilderFactory.new...

    qt xml操作 遍历

    - 创建DOM树:使用QDomDocument的parse()方法解析XML字符串或文件,生成DOM树。 - 遍历DOM树:QDomElement代表XML元素,通过getElementsByTagName()、firstChildElement()、nextSiblingElement()等方法可以遍历...

    XML图书管理系统

    总的来说,XML图书管理系统利用XML的强大功能,结合XPath进行数据查询,可能借助XSLT进行数据呈现,通过DOM或SAX解析XML,实现高效、灵活的图书信息管理。这个系统不仅提供了数据存储的解决方案,还为用户提供了便捷...

    任意XML转实体类 实体类 转XML 方法 JAVA

    总结一下,XML转实体类和实体类转XML涉及的主要知识点有:Java反射API、XML解析(DOM、SAX、StAX、JAXB),以及对象的序列化和反序列化。在实际开发中,我们需要根据项目需求选择合适的工具和方法,确保数据的准确...

Global site tag (gtag.js) - Google Analytics