项目使用dom4j解析xml格式数据,整理下常见的方法,本文不是完整的文档说明,只是实际中使用的实例!
1.Dom4j简介
DOM4J是 开源 XML 解析包,用于解析XML格式的数据。
| 实体类 | 说明 |
|---|---|
| Document | 定义了XML 文档 |
| Element | 定义了XML 元素 |
| Attribute | 定义了XML 属性 |
| Text | 定义 XML 文本节点 |
| XPath | XPath 路径表达式 |
| Node | 定义了XML节点 |
2.Dom4j应用
2.1 创建Document对象
- SAXReader创建document
// 通过url地址,获得document对象
public static Document load(URL url) {
Document document = null;
try {
SAXReader saxReader = new SAXReader();
document = saxReader.read(url);
} catch (Exception ex) {
ex.printStackTrace();
}
return document;
}
// 通过文件路径,获得document对象
public static Document load(String path) {
Document document = null;
try {
SAXReader saxReader = new SAXReader();
document = saxReader.read(path);
} catch (Exception ex) {
ex.printStackTrace();
}
return document;
}
- DocumentHelper创建document
// 创建空的document
public static Document create() {
Document document = DocumentHelper.createDocument();
return document;
}
// 文本生成document
public static Document create(String contentXml) {
Document document = null;
try {
document = DocumentHelper.parseText(contentXml);
} catch (DocumentException e) {
e.printStackTrace();
}
return document;
}
2.2 document 输出
// document写入指定文件
public static void doc2XmlFile(Document document, String filename) {
try {
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("UTF-8");
XMLWriter writer = new XMLWriter(new FileOutputStream(filename), format);
writer.write(document);
writer.close();
} catch (Exception ex) {
ex.printStackTrace();
}
}
// 转换document对象为字符串
public static String transDocument2Text(Document document, String encoding) throws Exception {
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding(encoding);
StringWriter stringWriter = new StringWriter();
XMLWriter writer = new XMLWriter(stringWriter, format);
writer.setOutputStream(new FileOutputStream("D:\\Y0705.xml"));
writer.write(document);
writer.flush();
return stringWriter.toString();
}
Dom4j通过XMLWriter将Document对象表示的XML树写入指定的文件。
使用OutputFormat格式对象指定写入的风格和编码方法。
调用OutputFormat.createPrettyPrint()方法可以获得的pretty print风格的格式对象。
调用OutputFormat.setEncoding()方法可以指定XML文件的编码方式。
2.3 Document方法
| 方法名称 | 描述信息 |
|---|---|
| addElement() | 创建Element元素 |
| remove() | 移除元素 |
| selectNodes() | 指定xpath下的元素或属性 |
| asXML() | 文档或节点xml转换字符串 |
2.4 Element 方法
| 方法名称 | 描述信息 |
|---|---|
| getName() | 元素的名称 |
| getText() | 元素所含有的text内容,如果内容为空则返回一个空字符串 |
| setText() | 给元素设置text内容 |
| add() | 元素的添加子元素 |
| remove() | 元素的移除子元素 |
| attribute() | 获取元素的指定属性 |
| attributeIterator() | 元素属性的iterator,其中每个元素都是Attribute对象 |
| attributeValue() | 元素的某个指定属性所含的值 |
| addAttribute() | 元素的添加属性对(名称和值) |
| elementIterator() | 元素的子元素的iterator,其中每个元素都是Element对象 |
| element() | 元素的某个指定的子元素 |
| elementText() | 元素的某个指定的子元素中的内容 |
| element() | 元素的某个指定的子元素 |
| getParent() | 元素的父元素 |
| addComment() | 元素添加注释信息 |
| asXML() | 元素xml转换成字符串 |
| selectNodes() | 获取指定路径下的xml集合 |
| selectSingleNode() | 获取指定路径下的单xml |
2.4 Attribute 方法
| 方法名称 | 描述信息 |
|---|---|
| getName() | 获取属性名 |
| getValue() | 获取属性值 |
| getText() | 获取属性值,底层调用的getValue()方法 |
| setValue() | 设置属性值 |
| setText() | 设置属性值,底层调用的setValue()方法 |
至此,Dom4j常用的方法和操作整理完毕,以后有需要再修改增加!
本文介绍了Dom4j作为开源XML解析包的使用,包括如何创建Document对象,如SAXReader和DocumentHelper的方式,以及Document对象的输出、Element和Attribute的相关方法。文章主要关注实际应用中的实例,提供了解析XML数据的参考。
225





