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. SVN部署与简单使用

    原文发表于cu:2016-05-24 参考文档: http://www.tuicool.com/articles/Yv2iyu7 http://www.centoscn.com/CentosServe ...

  2. Paper Reading - Long-term Recurrent Convolutional Networks for Visual Recognition and Description ( CVPR 2015 )

    Link of the Paper: https://arxiv.org/abs/1411.4389 Main Points: A novel Recurrent Convolutional Arch ...

  3. 回归Qt——写在Qt5.10发布之日

    今天偶然看到一条关于Qt5.10发布的消息,发现Qt经历了诺基亚风波之后发展得依然良好,感到很欣慰.回头看上次关注Qt技术还是2011年,那时候用Qt4.7做一个小项目,对于一个写Win32界面和MF ...

  4. python---json.dumps 与 json.loads /json.dump 和json.load区别

    json.dumps 是将python的数据类型进行json的编码,生成json格式的数据,举例json_data = json.dumps(str)  str为python的字符串类型数据,生成的j ...

  5. 第17次Scrum会议(10/29)【欢迎来怼】

    一.小组信息 队名:欢迎来怼小组成员队长:田继平成员:李圆圆,葛美义,王伟东,姜珊,邵朔,冉华 小组照片 二.开会信息 时间:2017/10/29 17:20~17:42,总计22min.地点:东北师 ...

  6. python 读取blob

    for num in range(76802): # if num == 0: # c[num] = imagedata[0:4] # d[num] = struct.unpack('i', c[nu ...

  7. mininet实验 连接floodlight控制器

    参考博客一 参考博客二 事先准备-floodlight安装 Java安装方法及环境变量配置 执行ifconfig命令获取floodlight所在服务器的IP地址. 1.启动floodlight jav ...

  8. 划分树---hdu4417---区间查找(不)大于h的个数

    http://acm.hdu.edu.cn/showproblem.php?pid=4417 Super Mario Time Limit: 2000/1000 MS (Java/Others)    ...

  9. lintcode-488-快乐数

    488-快乐数 写一个算法来判断一个数是不是"快乐数". 一个数是不是快乐是这么定义的:对于一个正整数,每一次将该数替换为他每个位置上的数字的平方和,然后重复这个过程直到这个数变为 ...

  10. 使用fprof基本步骤

    $erl -name a@localhost -setcookie abc -remsh b@localhost >fprof:trace([start, {file, "/home/ ...