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


相关推荐

  • 苹果x充电慢是什么原因_冬季冬季婴儿游泳馆水温上升慢是什么原因呢?该怎么办呢?…[通俗易懂]

    最近,天气越来越冷,正是婴儿游泳馆旺季之时,不少婴儿游泳馆经营者却反映,自己家的热水器好像不太给力了,水温上升速度很慢,已经影响了正常的经营。那么,冬季冬季婴儿游泳馆水温上升慢是什么原因呢?该怎么办呢?热水器安装位置不对空气能热水器需要安装在通风处,好安装在阳台。阳台是个半开放空间,可以自主掌握。冬季有利于新风机置换空气,夏季可以当空调使用,保证热水器的正常运行。其他热水器也要按照使用说明,选…

    2022年4月7日
    42
  • 心血漏洞第二发?SSL v3再曝新漏洞发布预警

    心血漏洞第二发?SSL v3再曝新漏洞发布预警2019独角兽企业重金招聘Python工程师标准>>>…

    2022年7月16日
    11
  • idea设置springboot热部署

    idea设置springboot热部署一.由于使用springboot开发时,需要经常修改代码,但是每次的修改需要重启springboot的启动类才能生效,所以我们需要设置成热部署的方式,大大减少启动时间,提高开发效率.二.设置热启动包括两方面:(1)在pom.xml文件中添加热部署的依赖<dependency><groupId>org.springfra…

    2022年5月4日
    177
  • flex布局垂直居中并换行展示内容

    flex布局垂直居中并换行展示内容display:flex;align-items:center;justify-content:center;flex-direction:column;flex-wrap:wrap;

    2022年5月9日
    70
  • MySQL主从+Atlas 实现读写分离

    MySQL主从+Atlas 实现读写分离

    2021年6月4日
    98
  • MySQL最全整理!西安java培训机构排名榜

    MySQL最全整理!西安java培训机构排名榜MySQL为何不选择平衡二叉树既然平衡二叉树解决了普通二叉树的问题,那么mysql为何不选择平衡二叉树作为索引呢?索引需要存储什么让我们想一想,如果我们要把索引存起来,那么应该存哪些信息呢,它应该存储三块信息:索引的值:就是表里面索引列对应的值。数据的磁盘地址(通过磁盘地址找到当前数据)或者直接存储整条数据。子节点的引用:我们需要从根节点往下走,所以需要知道左右子节点的地址。根据这三点,可以有如下大致的一个简单的结构图:上图中数字表示的是索引的值,0x开头的表示磁盘地址,根

    2022年9月25日
    3

发表回复

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

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