Dom4j 使用非专业指北

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

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则是一个完整的,我们通常理解的节点。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,946评论 18 399
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,422评论 19 139
  • 1 场景问题# 1.1 读取配置文件## 考虑这样一个实际的应用,维护系统自定义的配置文件。 几乎每个实际的应用系...
    七寸知架构阅读 8,322评论 2 56
  • 主啊 ,我正在调整和鹏鹏分开的安宁。你说,清心的人有福了。我感谢你让我和他相处了两天,送他去机场花去大半天。我在他...
    纯子404阅读 7,114评论 0 0
  • 一个回家的中午,路上突然多了些蜻蜓环绕左右,不由艳羡它们,生在最好时节。我打小喜欢秋天,从小学作业到真心...
    吴家小凡阅读 3,800评论 0 0