1. 接口

Document 是 XML 文档的树形结构在内存中的表示方式,org.dom4j 包里的 Document 有如下方法:

  1. Element getRootElement();
  2. void setRootElement(Element rootElement);
  3. String getXMLEncoding();
  4. void setXMLEncoding(String encoding);
  5. DocumentType getDocType();
  6. void setDocType(DocumentType docType);
  7. Document addDocType(String name, String publicId, String systemId);
  8. Document addComment(String comment);

Element 代表 XML 里的一个元素。这个接口继承了 Node 接口,有非常多的方法,常用的有

  1. String getName();
  2. String getText();
  3. void setText(String str);
  4. String attributeValue(String attributeName);
  5. void addAttribute(String attributeName,String attributeValue);
  6. Element element(String subElement);
  7. String elementText(String subElement);
  8. List<Element> elements();
  9. Element addElement(String subElement);

要使用dim4j,先要去官网下载 jar 文件,并保存到方便查找的位置。之后在项目设置中导入 library 。
image.png
下面是一个使用dom4j 解析 XML 文档的简单示例:

  1. import java.net.URL;
  2. import org.dom4j.Document;
  3. import org.dom4j.DocumentException;
  4. import org.dom4j.io.SAXReader;
  5. public class Foo {
  6. public Document parse(URL url) throws DocumentException {
  7. SAXReader reader = new SAXReader();
  8. Document document = reader.read(url);
  9. return document;
  10. }
  11. }

使用迭代器:

  1. public void bar(Document document) throws DocumentException {
  2. Element root = document.getRootElement();
  3. // iterate through child elements of root
  4. for (Iterator<Element> it = root.elementIterator(); it.hasNext();) {
  5. Element element = it.next();
  6. // do something
  7. }
  8. // iterate through child elements of root with element name "foo"
  9. for (Iterator<Element> it = root.elementIterator("foo"); it.hasNext();) {
  10. Element foo = it.next();
  11. // do something
  12. }
  13. // iterate through attributes of root
  14. for (Iterator<Attribute> it = root.attributeIterator(); it.hasNext();) {
  15. Attribute attribute = it.next();
  16. // do something
  17. }
  18. }