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)
上一篇 2022年7月26日 下午1:00
下一篇 2022年7月26日 下午1:00


相关推荐

  • layui 弹出层和提交表单

    layui 弹出层和提交表单在点击修改按钮的时候,content路径CPTL/+curId ,路径中的curid是当前信息的ID,弹窗跳出当前的数据信息 2. 把提交的按钮写在子页面里面,这里没有用layui自带的yes:function(), 3….

    2022年6月12日
    82
  • eclipse自动提示设置方法和优化(去除空格自动补全)

    eclipse自动提示设置方法和优化(去除空格自动补全)Eclipse自动提示设置我们打开Eclipse配置自动提示,点击window–Preferences界面首先配置java文件的自动提示点击java–Editor–ContentAssist,把AutoactivationtriggersforJava里面的内容改为:.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVW…

    2022年6月28日
    41
  • poj1256

    poj1256

    2021年8月11日
    55
  • Idea快捷键大全_零之轨迹超详细攻略

    Idea快捷键大全_零之轨迹超详细攻略4.1、字体设置file–>settings–>输入font–>设置字体样式以及字号大小。4.2、快速生成main方法psvm、main4.3、快速生成System.out.println()sout4.4、注意:IDEA是自动保存,不需要ctrl+s4.5、删除一行ctrl+y4.6、怎么运行:代码上右键–>run或者点击左侧的绿色箭头。ctrl+shift+F104.7、左侧窗口中的列表怎么展开?怎么关闭?左箭头关闭。

    2026年4月17日
    5
  • scrollIntoView 实现「建议收藏」

    scrollIntoView 实现「建议收藏」1.应用场景: 相信大家都曾经遇到过要将屏幕的某一部分滚到到用户视窗里,例如聊天信息的自动滚屏等,这个有不少解决方案: 1.聊天面板的scrolltop=scrollheight2.消息最后加一个element,然后element.scrollIntoView但是如果想要任一容器中间的一个元素,滚到该容器的视窗显示部分…

    2022年6月28日
    32
  • 什么是第一,第二,第三范式

    什么是第一,第二,第三范式我们在数据库表设计时,经常说,某某表要遵循第三范式。下面通过实例介绍第一,第二,第三范式第一范式所谓第一范式,就是数据表的列不可再分。看下面数据表,对于选课列明显是可以再分的,所以它是违反第一范式的。学号姓名选课10001张三数学,语文,英语10002

    2022年5月23日
    44

发表回复

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

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