dom4j之selectSingleNode方法

2017年12月18日 15:10:18 xclsky1120 阅读数:2043
 
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yumolan4325/article/details/78833298
1 dom4j中有一个方法可以根据xpath路径来得到Node。xpath路径是以根节点开始。如:/root/node1,该方法就是selectSingleNode(String xpath)返回第一个匹配xpath的Node
如:SAXReader saxReader=new SAXReader();
Document document=saxReader.read(new File(xmlFileString));
String xpath="/MSE_CS20_V1.0/response";
Node node=document.selectSingleNode(xpath);//这就是通过xpath来得到Node。是以根节点开始的/MSE_CS20_V1.0/response
System.out.println("通过selectSingleNode来得到node:"+node.getName());

2 该方法是返回Node。selectSingleNode是返回第一个匹配的Node。dom4j中可以得到根节点、通过节点来循环得到该节点的子节点、通过节点name来得到该节点Element。
如:public void testSelectSingleNode(String xmlFileString){
SAXReader saxReader=new SAXReader();
try {
Document document=saxReader.read(new File(xmlFileString));
Element root=document.getRootElement();//得到根节点
String rootName=root.getName();
System.out.println("根节点:"+rootName);
Element element_=(Element)root.elementIterator().next();//通过循环来得到
String xpath="/"+rootName+"/"+element_.getName();
System.out.println("xpath:"+xpath);
Element element__=root.element(element_.getName());//通过节点name来得到该节点Element
System.out.println("通过element方法类得到节点:"+element__.getName());
Node node=document.selectSingleNode(xpath);
System.out.println("通过selectSingleNode来得到node:"+node.getName());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

总结:现在读取xml文件通过dom4j。可以得到根节点,通过节点来循环得到该节点的子节点,通过节点name来得到Element。通过xpath路径来得到Node(可以强制转化为Element)。

3 通过selectSingleNode方法可以通过xpath路径来得到Node。可以强制转化为Element
如:SAXReader saxReader=new SAXReader();
Document document=saxReader.read(new File(xmlFileString));
Node node=document.selectSingleNode(xpath);
Element elemnt__=(Element)node;//强制转化为Element
System.out.println(elemnt__.getName());

综述,selectSingleNode通过xpath可以得到Node,也可以强制转化为Element,xpath是以/开始,从根节点开始,如:/MSE_CS20_V1.0/response。MSE_CS20_V1.0表示根节点,response是根节点下的子节点

dom4j之selectSingleNode方法的更多相关文章

  1. Xml中SelectSingleNode方法中的xpath用法

    https://blog.csdn.net/wf520pb/article/details/2644549 最常见的XML数据类型有:Element, Attribute,Comment, Text. ...

  2. Xml中SelectSingleNode方法,xpath查找某节点用法

    Xml中SelectSingleNode方法,xpath查找某节点用法 最常见的XML数据类型有:Element, Attribute,Comment, Text. Element, 指形如<N ...

  3. dom4j中 selectSingleNode 或selectNodes获取不到节点的原因总结 (转)

    没想到搞个dom4j会出这么多怪错.. 最近在研究XBRL GL的有关内容,在项目中要求吧XBRL GL导入到11179注册库中,根据11179建立数据库,然后从XBRL GL分类标准中导入数据到数据 ...

  4. 对DOM,SAX,JDOM,DOM4J四种方法解析XML文件的分析

    1.DOM 与平台无关的官方解析方式 DOM是一次性把xml文件加载到内存中,形成一个节点树 对内存有要求 2.SAX java提供的基于事件驱动的解析方式 每次遇到一个标签,会触发相应的事件方法 3 ...

  5. dom4j里面封装方法的操作

    animal.xml <?xml version="1.0" encoding="UTF-8"?><animal>   <cat ...

  6. 用SelectSingleNode()方法查找xml节点一直返回null

    代码使用如下 XmlNode root = xmlDoc.SelectSingleNode("Project"); 返回的root一直是null 查了xml文件中确实是有Proje ...

  7. dom4j学习

    在使用xml读写的过程中,用到了dom4j,也算是一个比较主流的xml包了,在使用的过程中,将学习经历记录一下,以后查阅也比较方便. 首先是在pom中添加依赖,在Maven的中心库搜索后选择了该包: ...

  8. dom4j 使用总结

    dom4j是一个Java的XML API,类似于jdom,用来读写XML文件 dom4j的使用方法简单总结来说如下: ①可以创建一个新的xml文件 ②利用SAXReader和File对象创建一个已存在 ...

  9. DOM4J介绍与代码示例

    DOM4J是dom4j.org出品的一个开源XML解析包.Dom4j是一个易用的.开源的库,用于XML,XPath和XSLT.它应用于Java平台,采用了Java集合框架并完全支持DOM,SAX和JA ...

随机推荐

  1. application/x-www-urlencoded与multipart/form-data

    学习ajax时,学到了GET与POST两种HTTP方法,于是去W3C看了二者的区别,里面提到了二者的编码类型不同,就在网上查阅了相关资料, 在这里把我查阅到的相关结果记录在此,方便以后学习,详细了解一 ...

  2. 3星|《十大全球CEO亲授企业高速成长的关键战略》:作为CEO,我也非常坦率地表明过家庭优先于工作

    十大全球CEO亲授 企业高速成长的关键战略(<哈佛商业评论>增刊) <哈佛商业评论>上的10来篇文章合集.大部分都看过,除了一篇中信的访谈,其他大部分是美国的有点旧的案例. 总 ...

  3. Zabbix自动发现之fping

    原文发表于cu:2016-06-21 Zabbix自动发现功能从配置流程上比较简单:Discovery与Action. 在做Zabbix的自动发现验证时,使用"ICMP ping" ...

  4. Switch Game :因子数

    A - Switch Game Problem Description There are many lamps in a line. All of them are off at first. A ...

  5. 福利,一张图看懂IT售前工程师修炼之道

    职场中的新人如何自我定位? 如何深刻理解IT售前这个职位? 如何从IT售前菜鸟成长为IT售前专家? 推荐这本书<IT售前工程师修炼之道> 本书精华内容 售前的重要性 售前要有逻辑能力 售前 ...

  6. loadrunner socket协议问题归纳(1)

    前段时间测了loadrunner直接发送报文到socket上的性能测试.在此,稍微回顾整理下. 与socket通讯,有两种方式,一种是建立长连接,建立后,不停的发送,接收.另外一种是建立短连接,建立连 ...

  7. Scrum立会报告+燃尽图(十月二十七日总第十八次)

    此作业要求参见:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2246 项目地址:https://git.coding.net/zhang ...

  8. 冲刺ing-3

    第三次Scrum冲刺 队员完成的任务 队员 完成任务 吴伟华 分配任务,燃尽图 蔺皓雯 编写博客,美化主界面 蔡晨旸 美化主界面 曾茜 主页面设计 鲁婧楠 服务器建构 杨池宇 服务器建构 成员遇到的问 ...

  9. 随机生成四则运算式2-NEW+PSP项目计划(补充没有真分数的情况)

    PS:这是昨天编写的随机生成四则运算式2的代码:http://www.cnblogs.com/wsqJohn/p/5264448.html 做了一些改进. 补:在上一次的运行中并没有加入真分数参与的运 ...

  10. 404 Note Found -(课堂实战)- 项目UML设计(团队)

    目录 团队信息 分工选择 课上分工 课下分工 ToDolist alpha版本要做的事情 燃尽图 UML 用例图 状态图 活动图 类图 部署图 实例图 对象图 时序图 包图 通信图 贡献分评定 课上贡 ...