java dom4j 查找_java dom4j根据条件读取查找xml节点的方法

java dom4j 查找_java dom4j根据条件读取查找xml节点的方法1.假如有下面的books.xml要用javadom4j解析查找。LuceneStudingDom4jTutorialsSpringinActionO’Reilly2.下面我们使用dom4j的xPath来解析:publicvoidparseBooks(){SAXReaderreader=newSAXReader();try{Documentdoc=reader.rea…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

1.假如有下面的books.xml要用java dom4j解析查找。<?xml  version=”1.0″ encoding=”UTF-8″?>

Lucene StudingDom4j TutorialsSpring in Action

O’Reilly

2.下面我们使用dom4j的xPath来解析:public void parseBooks(){

SAXReader reader = new SAXReader();

try {

Document doc = reader.read(“books.xml”);

Node root = doc.selectSingleNode(“/books”);

List list = root.selectNodes(“book[@url=’dom4j.com’]”);

for(Object o:list){

Element e = (Element) o;

String show=e.attributeValue(“show”);

System.out.println(“show = ” + show);

}

} catch (Exception e) {

e.printStackTrace();

}

}

3.代码详细解释如下:

Document doc = reader.read(“books.xml”);的意思是加载XML文档,此是可以用doc.asXML()来查看,它将打印整个xml文档。

Node root = doc.selectSingleNode(“/books”);是读取刚才加载的xml文档内的books节点下的所有内容,对于本例也是整个xml文档。

当然我们也可以加载/books下的某一个节点,如:book节点Node root = doc.selectSingleNode(“/books/book”);

或:Node root = doc.selectSingleNode(“/books/*”);

注意:如果有多个book节点,它只会读取第一个

root.asXML()将打印:

Lucene Studing

既然加载了这么多,那我怎么精确的查找得到我想要的节点呢,别急,看下面:List list = root.selectNodes(“book[@url=’dom4j.com’]”);

它的意思就是读取books节点下的book节点,且book的节点的url属性为dom4j.com

为什么使用list来接收呢,如果有两个book节点,且它们的url属性都为dom4j.com,此时就封闭到list里了。

如果想读取books下的所有book节点,可以这样:List list = root.selectNodes(“book”);

如果想读取books节点下的book节点下的title节点,可以这样:List list2 = root.selectNodes(“book[@url=’dom4j.com’]/title[@id=’123′]”);

注意:selectNodes()参数的格式:节点名[@属性名=’属性值’],如:book[@url=’dom4j.com’]

如果有多个节点,用“/”分开,如:book[@url=’dom4j.com’]/title[@id=’123′]

最近就是读取封闭在List里的内容了,可以用Node来读取,也可以用Element来转换(node可以强制转换成Element)。

attributeValue(“属性”)是读取该节点的属性值

getText()是读取节点的的内容。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/159401.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Linux安装Node.js(图文解说详细版)

    Linux安装Node.js(图文解说详细版)第一步,下载安装包https://nodejs.org/dist/v12.14.1/第二步,上传到云服务器第三步,解压源码tar-zxvfnode-v12.14.1-linux-x64.tar.gz第四步,验证是否成功出现版本号说明成功了第五步,设置全局命令行vim/etc/profile之后就在任何地方的命令行输入node-v显示出信息就说明安装成功了…

    2022年10月20日
    0
  • 磁盘在磁盘管理中显示没有初始化找回文件方案「建议收藏」

    磁盘在磁盘管理中显示没有初始化找回文件方案「建议收藏」磁盘没有初始化是因为0号扇区损坏,导致机械硬盘分区表读取不出来,从而机械硬盘出现磁盘没有初始化。工具/软件:极限数据恢复软件步骤1:程序打开后,直接双击需要恢复数据的物理盘。步骤2:等待程序扫描完毕大概需要几分钟到半个小时,稍微耐心等下即可。步骤3:软件扫描到资料后,软件会将扫描到的分区列出来。步骤4:勾上所有需要恢复的资料,右击选择《复制勾选的文件》,…

    2022年9月21日
    0
  • Java基础(多态的理解与应用)

    Java基础(多态的理解与应用)1.多态概述 多态是继封装、继承之后,面向对象的第三大特性。 多态现实意义理解: 现实事物经常会体现出多种形态,如学生,学生是人的一种,则一个具体的同学张三既是学生也是人,即出现两种形态。…

    2022年7月8日
    18
  • 【转载】C#扫盲之:==/Equals /ReferenceEquals 异同的总结,相等性你真的知道吗?

    【转载】C#扫盲之:==/Equals /ReferenceEquals 异同的总结,相等性你真的知道吗?

    2021年11月20日
    45
  • emc测试标准有哪些_emc标准体系

    emc测试标准有哪些_emc标准体系电波暗室,用于模拟开阔场,同时用于辐射无线电骚扰(EMI)和辐射敏感度(EMS)测量的密闭屏蔽室。来源:http://gememc.com/upload/201712/20171201093022763.jpg文章目录0.前言1.什么是EMC测试2.EMC标准的发布和管理者3.GB/T17626.X系列国家标准4.EMC试验的选择5.静电放电抗扰度试验6.浪涌(冲击)抗扰度试验7.电压…

    2022年9月5日
    3
  • jquery在线扫雷

    《扫雷》是一款大众类的益智小游戏,于1992年发行。游戏目标是在最短的时间内根据点击格子出现的数字找出所有非雷格子,同时避免踩雷。在线试玩 http://hovertree.com/texi

    2021年12月28日
    43

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号