`

dom4j学习(1) 读取xml

 
阅读更多

     由于工作中基本上用不到xml的解析 所以对xml的操作也不是很了解,很早就想学习下,但是又比较懒惰,所以也迟迟未写,今天 静下心来学了一下,根据网上的资料自己敲了段代码, 做了一个解析简单xml的例子,麻雀虽小五脏俱全。 做例子中遇到了很多知识盲点吧,上网查资料也找到了原因,都在这里总结下。

 

       是用dom4j来解析xml的 下面说说我遇到的几个问题吧

        1、 什么是Element,什么是Attribute,什么是Node?

         Element简单的说就是XML中的一个 完整的标签,Attribute就是标签中的某些属性,而Attribute所在的位置应该是在<here >,不是在<>not here </>在后者称为值,而Node,说实话我也没有了解的很透彻,网上是这样解释的 ,说NODE是相对TREE这种数据结构而言的。TREE就是由NODE组成,DOM将文档中的所有都看作节点,Element是可以有属性和子节点的node,node包括element、attribute、RootElement、Comment、Namespace、text等。参照下下面的图片。
                          
      2getText()与getValue()之间的区别, 首先getValue()这个方法是Attribute拥有的,而Element只有getText(),但同时Attribute也拥有getText()这个方法,正常人类的逻辑思维来说getValue()是要获得如上图attribute中id对应的值的,而getText()是获得name中张三,sex中男这里的值的,巧合的是attribute的getText()与getValue()返回的值相同,我猜想可能是attribute中getText()调用的是getValue()方法吧(瞎说的,没有看源码 )。

 

       再说下dom4j中我用到的几个方法吧:

        Document

              getRootElement()         无参数,返回xml文档的根元素

        Element:

               elements()                      无参数,返回所有该元素的子元素

                attributes()                    无参数,返回该元素下的所有属性   

                getText()                  无参数 ,获取<></>之间的文本,包括空格和回车,当<></>之间存在元素时不返回元素中内容

                getName()              返回元素的名称,即上图中的student,name等

       Attribute

                 getName ()                      返回属性的名称,即上图中的ID;

                 getText(),getValue() 返回属性值。

 

 

     然后就说一说解析xml,其实明白了xml的组成就知道了,解析xml无非就是取到Element和Attribute,最先是要找个入手点,而这个入手点就是rootElement根节点,只要找到根节点再顺藤摸瓜找到attribute和element再调用 getName(),getText(),getValue()就能知道我们想要的值了。

       贴上我写的一小段代码:

 

private void readXML(String xmlPath) throws Exception{
		File xmlFile = new File(xmlPath);
		SAXReader saxReader = new SAXReader();
		Document document = saxReader.read(xmlFile);
		Element rootEle = document.getRootElement();
		
		List<Element> lstElement = rootEle.elements();
		
		for(Element element:lstElement){
			List<Attribute> lstAttr = element.attributes();
			for(Attribute attr :lstAttr){
				System.out.println(attr.getName()+"="+attr.getValue());
			}
			
			List<Element> lstEle = element.elements();
			for(Element attr :lstEle){
				System.out.println(attr.getName()+"="+attr.getText());
			}
		}
	}
 

 

  • 大小: 3.9 KB
分享到:
评论

相关推荐

    利用dom4j--读取xml文件

    在本文中,我们将详细探讨如何利用DOM4J库来读取XML文件。 1. **安装DOM4J** 要使用DOM4J,首先需要将其添加到你的项目依赖中。如果你使用的是Maven,可以在`pom.xml`文件中添加以下依赖: ```xml &lt;groupId&gt;...

    dom4j 解析(读取) xml 节点数据

    接下来,我们将创建一个`SAXReader`实例,它是DOM4J中的解析器,用于读取XML文件: ```java SAXReader reader = new SAXReader(); ``` 然后,使用`reader`读取XML文件并获取`Document`对象,`Document`代表整个XML...

    通过Dom4j创建和读取xml文件下载

    1. **DOM4J基本概念**: - **Document**: XML文档的根节点,代表整个XML文件。 - **Element**: 表示XML文档中的元素节点,每个元素都有一个唯一的标签名。 - **Attribute**: 元素的属性,用来存储额外信息。 - *...

    dom4j的jar包(读取xml)

    2. 加载XML文件:使用`DocumentHelper.parseText()`或`DocumentBuilder.build()`方法读取XML文件内容并将其转化为DOM4J的`Document`对象。 3. 访问XML结构:通过`Document`对象,你可以访问根元素,然后遍历元素树。...

    java中用dom4j读取xml

    本文将深入探讨如何使用DOM4J库来读取XML文件。 首先,让我们理解DOM4J的基本概念。DOM4J是基于DOM模型的,DOM(Document Object Model)是一种标准的API,用于解析XML文档并将其表示为一棵由节点组成的树形结构。...

    通过Dom4j创建和读取xml文件

    综上所述,学习这个知识点需要掌握Dom4j的基本API,理解如何通过它来创建XML结构、设置属性、添加文本,以及如何读取XML文档中的元素、属性和内容。同时,了解XPath查询和使用JUnit进行单元测试也是重要的辅助技能。

    DOM4J 读取xml字符串

    **DOM4J 读取XML字符串** DOM4J 是一个非常强大的 Java XML API,它提供了丰富的功能,使得处理 XML 文件变得更加简单。DOM4J 的设计理念是简洁、灵活且高性能,它支持 SAX 和 DOM 解析,并提供了面向对象的接口。...

    使用dom4j和jaxen解析xml

    1. **dom4j解析XML**: - **创建XML文档**:通过`DocumentFactory`可以创建`Document`对象,进而添加元素、属性等。 - **读取XML文档**:使用`DocumentHelper.parseText()`或`SAXReader.read()`方法解析XML文本或...

    dom4j---xml解析jar包

    1. **读取XML文件**:使用`DocumentBuilder`或`SAXReader`类读取XML文件并创建`Document`对象。 2. **遍历XML结构**:通过`Element`对象的`elementIterator()`方法进行迭代,或者使用XPath表达式获取特定节点。 3. *...

    dom4j读取XML,解析XML简单示例

    DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了灵活且高效的API,使得XML的读取、解析、创建和修改变得简单易行。...通过对这个示例的学习,你可以进一步掌握DOM4J的用法,从而更好地处理XML文档。

    dom4j API 用于解析XML的java库

    6. **读写XML文件**:DOM4J提供了一系列的`Writer`和`Reader`,可以方便地读取XML文件到内存,或者将内存中的XML结构写入文件。例如,`XMLWriter`用于格式化输出XML,而`SAXWriter`则用于快速无格式的输出。 7. **...

    DOM4J jar包 xml解析 所有的dom4j-1.6.1 dom4j-2.0.2 dom4j-2.1.1包 导入直接使用

    1. **解析XML**:DOM4J可以读取XML文件,将其转换为一个树形结构,即Document对象。解析器有SAX和DOM两种模式,SAX是事件驱动的,适用于大文件,而DOM则将整个文档加载到内存中,适合小文件。 2. **创建XML**:DOM4...

    dom4j-1.6.1架包,读取xml

    1. XML解析:DOM4J支持多种解析方式,包括DOM(Document Object Model)、SAX(Simple API for XML)和STAX(Streaming API for XML)。DOM是一种将整个XML文档加载到内存中的解析方法,适合小型文档;SAX和STAX则是...

    dom4j解析xml详解

    - **配置文件解析**: 许多应用使用XML作为配置文件的格式,DOM4J可以方便地读取和更新这些配置信息。 - **Web服务**: 在SOAP等协议中,XML是常用的数据传输格式,DOM4J能够帮助构建和解析这些XML消息。 - **文档生成...

    Java用DOM4J读取XML

    ### Java使用DOM4J读取XML知识点解析 #### 一、概述 在Java开发中,处理XML文件是一项常见的任务。DOM4J是一个简单且功能强大的Java库,用于处理XML文档。它提供了类似于DOM的API,但更为轻量级且易于使用。本篇将...

    DOM4J读取XML

    本文将详细介绍如何使用DOM4J来读取XML文件中的信息。 ### DOM4J读取XML详解 #### 初始化资源路径 代码片段中的`URL url = this.getClass().getClassLoader().getResource("/")`这一行是获取类加载器的根目录路径...

    dom4j以String的方式读取XML的内容,并给String的值赋值,写入XML中

    在这个场景中,我们关注的是如何使用DOM4J以String的形式读取XML内容,然后将String的值赋给XML中的特定节点,最后将更新后的内容写回XML文件。下面我们将详细探讨这一过程。 1. **解析XML到String** 要将XML文件...

    使用dom4j读取xml四种方法

    ### 使用dom4j读取XML的四种方法 在Java开发中,处理XML文件是一种常见的需求。Dom4j作为一款简洁高效的Java库,被广泛应用于解析、操作XML文档。本文将详细介绍使用dom4j读取XML文件的四种常见方法,并通过示例...

Global site tag (gtag.js) - Google Analytics