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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 2021 goland激活码[在线序列号]

    2021 goland激活码[在线序列号],https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月18日
    108
  • 《JavaScript 模式》读书笔记(5)— 对象创建模式4

    我们学完了大部分对象创建模式相关的内容,下面还有一些小而精的部分。七、对象常量JavaScript中没有常量的概念,虽然许多现代的编程环境可能为您提供了用以创建常量的const语句。作为一种变通方

    2022年3月25日
    319
  • React路由基本用法[通俗易懂]

    React路由基本用法[通俗易懂]React路由基本用法1.ReactRouter4.0基本概述:ReactRouter4.0(以下简称RR4)遵循React的设计理念,即万物皆组件。所以RR4只是一堆提供了导航功能的组件(还有若干对象和方法),具有声明式(声明式编程简单来讲就是你只需要关心做什么,而无需关心如何去做,可组合性的特点。RR4采用单代码仓库模型架构(monorepo),这意味者这个仓库里面有…

    2022年5月4日
    61
  • flask jsonify之序列化时的default函数、jsonify序列化自定义对象[通俗易懂]

    flask jsonify之序列化时的default函数、jsonify序列化自定义对象[通俗易懂]目录1.看源码2、重写默认的default函数,实现自己的序列化机制3、把对象转化成字典3.1__dict__的方式3.2、定义keys和__getitem__的方式4、最终的代码实现5、关于default函数的其他知识1.看源码打开site-package,flask,json,__init__.pyjsonify回去调用default()函数,我们…

    2022年5月10日
    41
  • jenkinsfile docker_dockerfile创建文件夹

    jenkinsfile docker_dockerfile创建文件夹前言之前我们用docker手动安装了jenkins环境,在jenkins中又安装了python3环境和各种安装包,如果我们想要在其他3台机器上安装,又是重复操作,重复劳动,那会显得很low,这里可以

    2022年7月28日
    30
  • 一年多的前后(2019vs2020)对比「建议收藏」

    一年多的前后(2019vs2020)对比「建议收藏」不知不觉,又到了这个躁动不安的季节,躁动的是应届毕业生毕业以及高考。关于对青春的情愫,通常在这种时刻都会有各种各样的故事,当然了,我并不是一个会讲故事的人,所以通常情况下,就采用这种总结性的方式写文字

    2022年8月6日
    4

发表回复

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

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