项目使用dom4j解析xml格式数据,整理下常见的方法,本文不是完整的文档说明,只是实际中使用的实例!
1.Dom4j简介
DOM4J是 开源 XML 解析包,用于解析XML格式的数据。
实体类说明
Document定义了XML 文档Element定义了XML 元素Attribute定义了XML 属性Text定义 XML 文本节点XPathXPath 路径表达式Node定义了XML节点
2.Dom4j应用
2.1 创建Document对象
SAXReader创建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
;
}
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
public static Document
create() {
Document document
= DocumentHelper
.createDocument();
return 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 输出
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();
}
}
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常用的方法和操作整理完毕,以后有需要再修改增加!