1. 接口
Document 是 XML 文档的树形结构在内存中的表示方式,org.dom4j
包里的 Document 有如下方法:
Element getRootElement();
void setRootElement(Element rootElement);
String getXMLEncoding();
void setXMLEncoding(String encoding);
DocumentType getDocType();
void setDocType(DocumentType docType);
Document addDocType(String name, String publicId, String systemId);
Document addComment(String comment);
Element 代表 XML 里的一个元素。这个接口继承了 Node 接口,有非常多的方法,常用的有
String getName();
String getText();
void setText(String str);
String attributeValue(String attributeName);
void addAttribute(String attributeName,String attributeValue);
Element element(String subElement);
String elementText(String subElement);
List<Element> elements();
Element addElement(String subElement);
要使用dim4j,先要去官网下载 jar 文件,并保存到方便查找的位置。之后在项目设置中导入 library 。
下面是一个使用dom4j 解析 XML 文档的简单示例:
import java.net.URL;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.io.SAXReader;
public class Foo {
public Document parse(URL url) throws DocumentException {
SAXReader reader = new SAXReader();
Document document = reader.read(url);
return document;
}
}
使用迭代器:
public void bar(Document document) throws DocumentException {
Element root = document.getRootElement();
// iterate through child elements of root
for (Iterator<Element> it = root.elementIterator(); it.hasNext();) {
Element element = it.next();
// do something
}
// iterate through child elements of root with element name "foo"
for (Iterator<Element> it = root.elementIterator("foo"); it.hasNext();) {
Element foo = it.next();
// do something
}
// iterate through attributes of root
for (Iterator<Attribute> it = root.attributeIterator(); it.hasNext();) {
Attribute attribute = it.next();
// do something
}
}