最近在工作中,频繁用到解析XML,在这里顺便总结一下,为后续更复杂的内容做点准备:
一.最常用到的API
1.getRootElement():隶属于Document类,返回XML文档的根元素
setRootElement(Element rootElement) :设置给定元素为相应文档的根元素
2.asXML():隶属于Node类,用于将XML转换为String
3.DocumentHelper类常用API:
createDocument():创建一个Document对象
parseText(String text):解析给定Xml的文本,生成Document对象。
3.Element类中常用到API
attributeValue(String name) :获取元素String值。
elementIterator() :返回元素的所有子元素的Iterator迭代器。
elements() :返回元素包含所有子元素List。
getParent() :获取父元素Element。
getPath() :获取自己的xpath。
detach() :移除自己。
getName() :获取节点的名称。
selectNodes(String xpathExpression) :通过XPATH获取节点。
selectSingleNode(String xpathExpression) :通过XPATH获取一个节点。
getDocument() :作为一个Document返回。
二. 具体例子
1.XML文件内容:
<?xml version="1.0" encoding="utf-8"?>
<students>
<student id="1" sex="female">
<name>zhangsan</name>
<age>21</age>
<address>
<add code="home">zhengzhou</add>
<add code="company">HIST</add>
</address>
</student>
<student id="2" sex="male">
<name>wangwu</name>
<age>16</age>
<address>
<add code="home">beijing</add>
<add code="company">dongzhi</add>
</address>
</student>
</students>
2.测试代码:
public class ParseXmlExample {
public void parseXmlDoc(String xmlFile){
SAXReader saxReader=new SAXReader();
Document doc=null;
try {
doc=saxReader.read(ParseXmlExample.class.getResourceAsStream(xmlFile));
} catch (DocumentException e) {
e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
}
Element rootElement=doc.getRootElement();
for(Iterator iterator=rootElement.elementIterator();iterator.hasNext();){
Element e_stu=(Element)iterator.next();
String student=e_stu.getName();
String id=e_stu.attributeValue("id");
String sex=e_stu.attributeValue("sex");
String name=e_stu.element("name").getText();
Element address=e_stu.element("address");
StringBuilder sb=new StringBuilder();
sb.append(student+"\n");
sb.append("\t"+"id:"+id+"\t"+"sex:"+sex+"\n");
sb.append("\t"+"name:"+name+"\n");
sb.append("\t"+address.getName()+"\n");
for(Iterator ad=address.elementIterator();ad.hasNext();){
Element e_com=(Element)ad.next();
String code=e_com.attributeValue("code");
String value=e_com.getText();
sb.append("\t\t"+code+":"+value+"\n");
}
System.out.println(sb.toString());
}
}
public static void main(String[] argv){
new ParseXmlExample().parseXmlDoc("students.xml");
}
}
运行结果:
student
id:1 sex:female
name:zhangsan
address
home:zhengzhou
company:HIST
student
id:2 sex:male
name:wangwu
address
home:beijing
company:dongzhi
Process finished with exit code 0
分享到:
相关推荐
### DOM4J解析XML详解 #### 一、DOM4J简介与特性 DOM4J是一个由dom4j.org开发的开源XML解析包,专为Java平台设计,它不仅支持DOM、SAX和JAXP标准,还巧妙地融入了Java集合框架,使其成为Java开发者在处理XML数据时...
### DOM4J解析XML知识点详解 #### 一、DOM4J简介 DOM4J是一个Java库,用于处理XML文档。它的设计目标是为了提供一个简单、易于使用的API来处理XML文件,同时保持性能上的优势。与Java标准库中的DOM实现相比,DOM4J...
总结来说,DOM4J是一个全面且易用的XML处理工具,广泛应用于Java开发中。通过`dom4j-1.6.1.jar`和`jaxen-1.1.1.jar`这两个jar包,开发者可以获得完整的DOM4J功能,实现XML的解析、构建、查询和转换等一系列操作。
以下是如何使用DOM4j解析XML: 1. 引入DOM4j库(如:dom4j-1.6.1.jar)。 2. 创建DocumentFactory实例。 3. 使用DocumentFactory的read()方法读取XML文件,得到Document对象。 4. 使用Document对象提供的方法(如...
DOM4J是一个强大的Java库,专门用于解析XML文档。它提供了简单易用的API,使得开发者可以更加方便地处理XML数据。DOM4J的核心优势在于它的面向接口编程设计,这使得它能够在不同的解析机制间灵活切换,如DOM、SAX和...
### 什么是XML文件 XML(Extensible Markup Language,可扩展标记语言)是一种标记语言,用于存储和传输数据。...掌握DOM4J解析XML的技术对于处理XML数据流以及Java应用程序中的数据交换具有重要意义。
以下是一个DOM4J解析XML的简单示例: ```java import org.dom4j.Document; import org.dom4j.DocumentHelper; import org.dom4j.Element; public class Dom4jExample { public static void main(String[] args) {...
本篇文章将深入探讨如何使用DOM4J来解析XML文件,以及通过示例代码来展示其基本操作。 首先,我们需要理解DOM4J的工作原理。DOM4J采用的是DOM(Document Object Model)模型,它将整个XML文档加载到内存中形成一棵...
"dom4j-jar与dom4j解析xml文档介绍" 这个标题告诉我们,我们将探讨的是一个关于dom4j库的jar文件,以及如何使用这个库来解析XML文档。dom4j是一个Java库,它提供了丰富的API用于处理XML、HTML和DOM文档。这里的"jar...
三、DOM4J解析XML 1. 创建Document对象:使用`DocumentFactory`创建XML文档的根元素,然后逐步构建整个文档。 2. 读取XML文件:通过`DocumentHelper.parseText()`或`SAXReader.read()`方法读取XML文件到Document对象...
### 使用DOM4j解析XML文件:提升开发效率与代码可读性 在现代软件开发中,XML(Extensible Markup Language)是一种广泛使用的数据交换格式,它以人类可读的文本形式存储结构化信息。然而,如何高效、准确地解析XML...
接下来,我们将通过几个关键步骤来演示如何使用Dom4J解析XML文件: 1. **加载XML文档**:使用`DocumentFactory`创建一个`Document`对象,该对象代表整个XML文档。可以使用`DocumentHelper.parseText()`或`SAXReader...
本文将深入探讨如何使用Dom4j解析XML以及解决中文乱码的问题。 首先,让我们了解Dom4j的基本用法。在解析XML文件时,通常会使用`DocumentBuilderFactory`和`DocumentBuilder`来创建一个`Document`对象,然后通过这...
在本教程中,我们将深入探讨如何使用DOM4J解析XML配置文件,并模拟处理`web.xml`中的`url-pattern`元素。 首先,让我们了解DOM4J的基本概念。DOM4J是一个基于Java的DOM模型的XML库,它扩展了标准的DOM API,增加了...
### DOM4J解析XML时DTD路径问题 在处理XML文件时,经常需要用到DOM4J这样的库来进行解析。当XML文件包含DTD(Document Type Definition)声明时,DOM4J默认会尝试从指定的URL加载DTD文件来进行验证。这通常是为了...
在Java环境中,解析XML文档时,我们通常会遇到各种库,其中DOM4J是一个非常流行的、功能强大的开放源代码库。这个库不仅简化了XML处理,还提供了XPath和XSLT的支持,使其成为Java开发者处理XML的首选工具之一。 **...
本篇将深入讲解DOM4J解析XML的原理与实践,同时提供相关源代码供参考。 一、DOM4J概述 DOM4J是基于DOM模型的,但它比Java标准的DOM API更轻量级,性能更优。DOM4J的主要特点包括: 1. 支持XPath:DOM4J提供了对...
在本文中,我们将深入探讨如何使用DOM4J解析XML和SOAP报文,以及如何从中提取所需字段。 首先,理解XML是非常重要的。XML(可扩展标记语言)是一种用于标记数据的语言,允许我们以结构化的方式存储和传输信息。DOM4...
1. **DOM解析方式**:DOM4J通过DOM接口来解析XML,将整个XML文档加载到内存中形成一个树形结构,称为DOM树。这样做的优点是可以方便地通过路径导航访问任何元素,缺点是如果XML文件过大,可能会消耗大量内存。 2. *...