Dom4j 使用非专业指北

英语基础好的可以直接阅读官方文档:传送门

XML字符串如下

  1
  2
  
    3
    4
  


初步接触

  • 第一步在开始所有行为之前必须获取Document对象
    public Document getDocument() {
    //通过url请求返回xml字符串
    SAXReader reader = new SAXReader();
    Document document = reader.read(url);
    //已经有xml字符串
    Document document = DocumentHelper.parseText(xmlStr);
    }
  • 第二步获取RootElement,即获取AAA
    public Element getRootElement(Document document) {
    return document.getRootElement();
    }
  • 接下来可以获取一些指定节点的值,比如获得AAA节点下BBB的值
    public String gerValue(Element element) {
    Element bbb = element.element("BBB");
    return bbb.getTextTrim();
    }
  • 当然如果是DDD节点这种情况,他含有子标签,我们想获得BBB的值
    public String getValue(Element element) {
    Element ddd = element.element("DDD");
    return ddd.element("BBB").getTextTrim();
    }

前方高能

  • 如果你不清楚xml结构,希望把他的所有一切都搞清楚,福利来了:
    public void getEverything(Document document) {
    getEverything(document.getRootElement);
    }
    public void getEverything(Element element) {
    for (int i=0, size=element.nodeCount();i++) {
    Node node = element.node(i);
    if ( node instanceof Element ) {
    getEverything( (Element) node );
    } else {
    // do something....
    }
    }
    }
    PS:Node可以理解为包含在Element中的,比如属性,注 释,文字,都是Node。而Element则是一个完整的,我们通常理解的节点。

你可能感兴趣的:(Dom4j 使用非专业指北)