Dom4j  查找节点或属性

例如

1 查找下面xml中的student节点的age属性,

xpathstr="/students/student/@age";

2 查找下面xml中的student节点的telephone的值,

xpathstr="/students/student/telephone";

3 查找下面xml中的student节点的telephone的值,并且要满足name中包含“2030”,用到模糊查找

xpathstr="/students/student[contains("name","2030")]/telephone";

完整的xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<students>
  <student name="beijings2014" age="25">
    <college>mobile</college>
    <telephone>888</telephone>
  </student>

<student name="shanghais2019">
    <college>pc</college>
    <telephone>999</telephone>
  </student>

<student name="xi'ans2030">
    <college>pad</college>
    <telephone>000</telephone>
  </student>
</students>

具体方法:查找节点或属性,传入Document 和 xpathstr,此处Document 类型为 org.dom4j.Document,

如果用的是org.w3c.dom.Document则需要转换,可以看之前的一篇"

org.w3c.dom.Document 与org.dom4j.Document互转

"

 public String getContentString(Document document,String xpathstr){

         List list = document.selectNodes(xpathstr);
String result=""; Iterator iter = list.iterator();
iter = list.iterator();
if (iter.hasNext()) { Object o=iter.next();
if(o instanceof Attribute){
Attribute attribute = (Attribute) o;
//hm.put(attribute.getName(),attribute.getValue());
result=attribute.getValue();
if(debugf){
System.out.println(attribute.getName()+":"+attribute.getValue());
} }
if(o instanceof Element){
Element element = (Element) o;
String name = element.getName();
String value = element.getText();
//hm.put(name, value);
result=value;
if(debugf){
System.out.println(name+":"+value);
}
}
} else {
return result;
}
return result;
}

Dom4j 查找节点或属性的更多相关文章

  1. Dom4j向XML中增加节点与属性——(四)

    先获取到节点,然后在节点山添加Element 添加节点 添加属性 设置开始标签与结束标签的值book.addElement("描述").addAttribute("nam ...

  2. DOM简介及节点、属性、查找节点的方法

    DOM(Document Object Modle) 操作文档的编程接口DOM定义了表示和修改文档的方法,不能修改css样式表,在js中使用DOM方法改变元素的css样式,实质上是在元素上添加行间样式 ...

  3. DOM操作 ——如何添加、移除、移动、复制、创建和查找节点等。

    DOM操作 --如何添加.移除.移动.复制.创建和查找节点等. (1)创建新节点 createDocumentFragment() //创建一个DOM片段 createElement() //创建一个 ...

  4. (一)DOM 常用操作 —— “查找”节点

    在 DOM 树中,如果想要操作一个节点,那么首先要"查找"到这个节点.查找节点的方法由 Document 接口定义,而该接口由 JavaScript 中的 document 对象实 ...

  5. 用JDOM和DOM4J解析节点名节点值

    1.用JDOM解析节点名和节点值 1.创建一个SAXBuilder对象 2.创建一个输入流, 将xml文件加载到文件中 3.   通过saxBuilder的方法,将输入流加载到saxBuilder 4 ...

  6. Selenium 查找节点

    Selenium 可以驱动浏览器完成各种操作,比如填充表单.模拟点击等.比如,我们想要完成向某个输入框输入文字的操作,总需要知道这个输入框在哪里吧?而 Selenium 提供了一系列查找节点的方法,我 ...

  7. JavaScript快速查找节点

    我们在实际的开发中,经常要获取页面中某个html元素,动态更新元素的样式.内容属性等. 我们已经知道在JavaScript中提供下面的方法获取子.父.兄节点的方法: 常规 通过父节点获取子节点: pa ...

  8. javasript 的DOM 节点操作:创建,插入,删除,复制以及查找节点

    DOM 含义: DOM 是文档对象模型(Document Object Model) 是一种基于浏览器编程的一套API 接口,我W3C 出台推荐的标准.其赋予了JS 操作节点的能力,当网页被加载时,浏 ...

  9. XPath可以快速定位到Xml中的节点或者属性。XPath语法很简单,但是强大够用,它也是使用xslt的基础知识。

    示例Xml: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 <?xml versio ...

随机推荐

  1. 不要在.h文件中定义变量

    今天在头文件.h中初始化了一个数组和函数,在编译的时候提示这个数组和函数重新定义了,检查后发现,犯了一个致命的错误,在头文件中定义变量... 以下引用别人的一篇说明,警示自己. C语言作为一种结构化的 ...

  2. SPOJ 962 Intergalactic Map

    Intergalactic Map Time Limit: 6000ms Memory Limit: 262144KB This problem will be judged on SPOJ. Ori ...

  3. hdoj-5099-Comparison of Android versions

    Comparison of Android versions Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (J ...

  4. sklearn.preprocessing OneHotEncoder——仅仅是数值型字段才可以,如果是字符类型字段则不能直接搞定

    >>> from sklearn.preprocessing import OneHotEncoder >>> enc = OneHotEncoder() > ...

  5. [luoguP4302] [SCOI2003] 字符串折叠 解题报告(区间DP)

    题目链接:https://www.luogu.org/problemnew/show/P4302 题解: 我们考虑折叠一个区间里的字符串,怎么样才是最优的 1.把这个区间分成几部分分别折叠 2.把这个 ...

  6. 12.红黑树set

    #include <iostream> //红黑树(自动保证平衡,自动生成平衡查找树) #include <set> #include <cstring> #inc ...

  7. tnsnames.ora文件说明

    目录位置 unix:$ORACLE_HOME/network/admin WINDOW:%ORACLE_HOME%\network\admin 设置相应的环境变量:TNS_ADMIN tnsname. ...

  8. YYDispatchQueuePool阅读笔记

    阅读了开源大神的YYDispatchQueuePool,在此记下一些从中学到的东西. 首先YYDispatchQueuePool.m文件中有如下类型对应: static inline dispatch ...

  9. sql索引碎片产生的原理 解决碎片的办法(sql碎片整理)

    本文讲述了SQL SERVER中碎片产生的原理,内部碎片和外部碎片的概念.以及解决碎片的办法和填充因子.在数据库中,往往每一个对于某一方面性能增加的功能也会伴随着另一方面性能的减弱.系统的学习数据库知 ...

  10. objc_clear_deallocating 与弱引用

    void *objc_destructInstance(id obj){ if (obj) { Class isa_gen = _object_getClass(obj); class_t *isa ...