项目使用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常用的方法和操作整理完毕,以后有需要再修改增加!