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 rootfor (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 rootfor (Iterator<Attribute> it = root.attributeIterator(); it.hasNext();) {Attribute attribute = it.next();// do something}}
