美文网首页
Dom4j 使用非专业指北

Dom4j 使用非专业指北

作者: WolfyZhang | 来源:发表于2016-04-13 17:13 被阅读0次

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

    XML字符串如下
    <AAA>
      <BBB>1</BBB>
      <CCC>2</CCC>
      <DDD>
        <BBB>3</BBB>
        <CCC>4</CCC>
      </DDD>
    </AAA>
    

    初步接触

    • 第一步在开始所有行为之前必须获取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 使用非专业指北

          本文链接:https://www.haomeiwen.com/subject/ebowlttx.html