Document:
整个文档对象,
add()方法添加子节点。
getRootElement()得到根节点。
QName:
可创建的Element的基本元素名称
Element:
节点
static createElement(QName qName)可创建节点
addText(String text)可添加元素的内容。add方法添加子节点。
element(String eleName)查询节点中名字为eleName的子节点。
elements(String eleName)查询节点名字为eleName的子节点列表。
selectNodes(String nodePath)查询路径为nodePath的子节点列表。
selectSingleNode(String nodePath)查询路径为nodePath的单个子节点(Element)。
OutputFormat:
createPrettyPrint()可美化格式的输出。
setEncoding(String encoding) 设置编码.
XMLWriter:
new XMLWriter(new FileWriter(xmlFilePath), format)可创建xmlWriter对象。 write(Document doc)将整个doc写入到xmlWriter对象中。
close()方法:关闭io流,必写。
写入到xml文件:
/**//* 创建Document */
Document doc = DocumentHelper.createDocument();
QName serverListQName = new QName("ServerList");
Element serverListElement = DocumentHelper.createElement(serverListQName);
doc.add(serverListElement); //加到父节点doc
QName serverQName = new QName("server");
Element serverElement = DocumentHelper.createElement(serverQName);
serverListElement.add(serverElement); //加到父节点ServerList
QName ipQName = new QName("ip");
Element ipElement = DocumentHelper.createElement(ipQName);
ipElement.addText("XXX.XX.XX.XX");
serverElement.add(ipElement); //加到父节点server
OutputFormat format = OutputFormat.createPrettyPrint();/**//* 美化格式的输出 */
// OutputFormat format = OutputFormat.createCompactFormat();/*
// 压缩格式的输出,节省空间 */
format.setEncoding("utf-8");/**//* xml的编码 */
XMLWriter writer = new XMLWriter(new FileWriter("test.xml"), format); //文件的路径。
writer.write(doc);
writer.close();/**//* 必写无疑 */
生成后的文件test.xml
<?xml version="1.0" encoding="utf-8"?>
<ServerList>
<server>
<ip>XXX.XX.XX.XX</ip>
</server>
</ServerList>
读取xml文件到List<ServerInfo>中
/**
*
* @param xmlFilePath
* @return
*/
public static List<ServerInfo> readXML(String xmlFilePath){
File inputXml=new File(xmlFilePath);
SAXReader saxReader = new SAXReader();
Document document=null;
try {
document = saxReader.read(inputXml);
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Element employees = document.getRootElement();
Element serlistElement = employees.element("ServerList");
List<Element> serverElementList = serlistElement.elements("server");
List<ServerInfo> ServerInfoList = new LinkedList<ServerInfo>();
for(Element serverElement:serverElementList){
ServerInfoList.add(new ServerInfo(serverElement.element("ip").getText(),serverElement.element("servicePort").getText(),serverElement.element("webPort").getText(),serverElement.element("serverType").getText()));
}
return ServerInfoList;
}
分享到:
相关推荐
1. **丰富的API**:DOM4J提供了大量的接口和类,涵盖了XML处理的各个方面,如解析、创建、遍历、修改和查询XML文档。这些API设计简洁,易于理解和使用。 2. **XPath支持**:DOM4J支持XPath表达式,使得开发者可以...
DOM4J主要特性包括: 1. **灵活的文档构建**:DOM4J提供了多种方式来创建和修改XML文档,如通过元素、属性、文本节点等对象直接操作,或者使用XPath表达式定位。 2. **强大的查询能力**:DOM4J支持XPath,可以方便...
3. **解析XML**:DOM4J提供两种主要的解析方式,SAX解析和DOM解析。SAX解析适用于大型XML文件,因为它以流式处理数据,占用内存小;DOM解析则将整个XML文档加载到内存,便于操作,适合小型文件。 4. **操作XML**:...
DOM4J 的主要特点是使用大量的接口,所有主要接口都在 org.dom4j 里面定义。 一、DOM4J 简介 DOM4J 是一个基于 Java 的 XML 解析包,用于解析和操作 XML 文档。它提供了一个简洁的 API,方便用户快速地解析和操作 ...
一、dom4j主要接口 1. `org.dom4j.Attribute`: 表示XML文件的属性,用于存储元素的属性信息。 2. `org.dom4j.Branch`: 是一个接口,为XML元素和文档定义了公共行为,这些节点可以包含子节点。 3. `org.dom4j.CDATA`...
本篇将详细介绍DOM4J的核心概念、主要功能以及如何在实际项目中运用。 一、DOM4J简介 DOM4J是基于DOM模型的,但相比Java内置的DOM API,DOM4J更轻量级且易于使用。它支持XPath查询,提供了丰富的事件处理机制,...
DOM4J的主要特点和功能包括: 1. **XML解析与构建**:DOM4J支持SAX和DOM解析器,可以将XML文档解析为树形结构。同时,它也提供了构建XML文档的方法,允许开发者动态创建XML内容。 2. **XPath支持**:DOM4J实现了...
DOM4J通过提供SAX(Simple API for XML)和DOM的接口,使开发者可以选择更适合他们应用场景的方法来处理XML。 在DOM4J 1.6.1中,主要包含以下功能: 1. **XML解析**:DOM4J支持多种解析方式,包括SAX解析、DOM解析...
2. `dom4j-1.6.1.jar`:这是DOM4J的主要库文件,包含了处理XML的所有功能。这个版本1.6.1是DOM4J的一个稳定版本,提供了许多特性,如读写XML文件、构建和修改XML结构、执行XPath查询、事件驱动的解析器以及XML ...
DOM4J的主要接口位于`org.dom4j`包中,每个接口都对应着XML文档中的一种结构或特性。 - **`Attribute`**: 定义了XML属性的行为。 - **`Branch`**: 表示可以包含子节点的节点,如`Element`和`Document`。 - **`CDATA...
DOM4J的主要特点包括: 1. 易于使用:DOM4J的API设计直观,使得开发者可以快速上手,减少学习成本。它提供了丰富的接口和类,能够以面向对象的方式处理XML文档。 2. 性能优异:相比其他XML解析库,DOM4J在处理大...
4. **DOM支持**:除了SAX,DOM4J还兼容DOM接口,使得已有的DOM代码可以无缝地与DOM4J结合使用。 5. **StAX支持**:DOM4J还支持StAX(Streaming API for XML),这是一种更高效的XML处理方式,它允许程序在解析XML...
描述中提到"dom4j.jar包用于解析xml文档使用,已经验证,解压引入工程即可使用",这说明DOM4J的主要用途是解析XML文档。XML(eXtensible Markup Language)是一种用于存储和传输数据的标准格式,广泛应用于配置文件...
这个“dom4j完整版.zip”压缩包包含了DOM4J的主要组件和相关资源,方便开发人员在项目中集成和使用。 首先,dom4j-1.6.1.jar是DOM4J库的核心文件,包含了所有必要的类和接口。这个版本的DOM4J支持Java DOM、SAX和...
DOM4J采用了Document Object Model (DOM)接口,但它的实现更加轻量级,性能更优。DOM4J的核心类包括`Element`、`Attribute`、`Document`和`Namespace`等,它们分别代表了XML文档中的元素、属性、文档和命名空间。 *...
#### 二、DOM4J的主要接口解析 DOM4J的核心优势之一在于其丰富的接口体系,这些接口定义在`org.dom4j`包内,提供了对XML文档进行读写、查询、修改等操作的能力。 1. **Attribute**: 代表XML中的属性,可用于获取和...