由于工作中基本上用不到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等。参照下下面的图片。
2
、getText()与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文件。 1. **安装DOM4J** 要使用DOM4J,首先需要将其添加到你的项目依赖中。如果你使用的是Maven,可以在`pom.xml`文件中添加以下依赖: ```xml <groupId>...
接下来,我们将创建一个`SAXReader`实例,它是DOM4J中的解析器,用于读取XML文件: ```java SAXReader reader = new SAXReader(); ``` 然后,使用`reader`读取XML文件并获取`Document`对象,`Document`代表整个XML...
1. **DOM4J基本概念**: - **Document**: XML文档的根节点,代表整个XML文件。 - **Element**: 表示XML文档中的元素节点,每个元素都有一个唯一的标签名。 - **Attribute**: 元素的属性,用来存储额外信息。 - *...
2. 加载XML文件:使用`DocumentHelper.parseText()`或`DocumentBuilder.build()`方法读取XML文件内容并将其转化为DOM4J的`Document`对象。 3. 访问XML结构:通过`Document`对象,你可以访问根元素,然后遍历元素树。...
本文将深入探讨如何使用DOM4J库来读取XML文件。 首先,让我们理解DOM4J的基本概念。DOM4J是基于DOM模型的,DOM(Document Object Model)是一种标准的API,用于解析XML文档并将其表示为一棵由节点组成的树形结构。...
综上所述,学习这个知识点需要掌握Dom4j的基本API,理解如何通过它来创建XML结构、设置属性、添加文本,以及如何读取XML文档中的元素、属性和内容。同时,了解XPath查询和使用JUnit进行单元测试也是重要的辅助技能。
**DOM4J 读取XML字符串** DOM4J 是一个非常强大的 Java XML API,它提供了丰富的功能,使得处理 XML 文件变得更加简单。DOM4J 的设计理念是简洁、灵活且高性能,它支持 SAX 和 DOM 解析,并提供了面向对象的接口。...
1. **dom4j解析XML**: - **创建XML文档**:通过`DocumentFactory`可以创建`Document`对象,进而添加元素、属性等。 - **读取XML文档**:使用`DocumentHelper.parseText()`或`SAXReader.read()`方法解析XML文本或...
1. **读取XML文件**:使用`DocumentBuilder`或`SAXReader`类读取XML文件并创建`Document`对象。 2. **遍历XML结构**:通过`Element`对象的`elementIterator()`方法进行迭代,或者使用XPath表达式获取特定节点。 3. *...
DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了灵活且高效的API,使得XML的读取、解析、创建和修改变得简单易行。...通过对这个示例的学习,你可以进一步掌握DOM4J的用法,从而更好地处理XML文档。
6. **读写XML文件**:DOM4J提供了一系列的`Writer`和`Reader`,可以方便地读取XML文件到内存,或者将内存中的XML结构写入文件。例如,`XMLWriter`用于格式化输出XML,而`SAXWriter`则用于快速无格式的输出。 7. **...
1. **解析XML**:DOM4J可以读取XML文件,将其转换为一个树形结构,即Document对象。解析器有SAX和DOM两种模式,SAX是事件驱动的,适用于大文件,而DOM则将整个文档加载到内存中,适合小文件。 2. **创建XML**:DOM4...
1. XML解析:DOM4J支持多种解析方式,包括DOM(Document Object Model)、SAX(Simple API for XML)和STAX(Streaming API for XML)。DOM是一种将整个XML文档加载到内存中的解析方法,适合小型文档;SAX和STAX则是...
- **配置文件解析**: 许多应用使用XML作为配置文件的格式,DOM4J可以方便地读取和更新这些配置信息。 - **Web服务**: 在SOAP等协议中,XML是常用的数据传输格式,DOM4J能够帮助构建和解析这些XML消息。 - **文档生成...
### Java使用DOM4J读取XML知识点解析 #### 一、概述 在Java开发中,处理XML文件是一项常见的任务。DOM4J是一个简单且功能强大的Java库,用于处理XML文档。它提供了类似于DOM的API,但更为轻量级且易于使用。本篇将...
本文将详细介绍如何使用DOM4J来读取XML文件中的信息。 ### DOM4J读取XML详解 #### 初始化资源路径 代码片段中的`URL url = this.getClass().getClassLoader().getResource("/")`这一行是获取类加载器的根目录路径...
在这个场景中,我们关注的是如何使用DOM4J以String的形式读取XML内容,然后将String的值赋给XML中的特定节点,最后将更新后的内容写回XML文件。下面我们将详细探讨这一过程。 1. **解析XML到String** 要将XML文件...
### 使用dom4j读取XML的四种方法 在Java开发中,处理XML文件是一种常见的需求。Dom4j作为一款简洁高效的Java库,被广泛应用于解析、操作XML文档。本文将详细介绍使用dom4j读取XML文件的四种常见方法,并通过示例...