使用dom4j工具包提取元素时,使用element方法一层一层的往下提取元素时,短层次的使用起来比较方便,但遇到多层次嵌套的,这种方法便遇到问题,不过还有一种方式来提取元素,使用xpath方式.

xml文件如下:

<?xml version="1.0" encoding="gb2312"?> <书架> <书> <书名 name="the daught of sea">海的女儿</书名> <作者>Hello</作者> <售价>50.0元</售价> <售价>39.0元</售价> </书> <书> <书名 name="happy">卖火柴的小女孩</书名> <作者>安徒生</作者> </书> </书架>

使用xpath方式提取元素的Java代码如下:

package com.java.dom; import java.util.Iterator; import java.util.List; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.io.SAXReader; public class XPathTest { /** * @param args * @throws DocumentException */ public static void main(String[] args) throws DocumentException { SAXReader reader = new SAXReader(); Document doc = reader.read("src/books.xml"); //使用xpath提取单个元素 String price = doc.selectSingleNode("//售价").getText();//取出第一个售价 System.out.println(price); //使用xpath提取多个相同元素 List list = doc.selectNodes("//书名"); for(Iterator it = list.iterator(); it.hasNext();) { Element name = (Element) it.next(); String name1 = name.getText(); System.out.println(name1); } //使用xpath提取多个属性 List list1 = doc.selectNodes("//书名"); for(Iterator iter = list.iterator(); iter.hasNext();) { Element name = (Element) iter.next(); String name1 = name.valueOf("@name"); System.out.println(name1); } } }

运行结果为:

50.0元 海的女儿 卖火柴的小女孩 the daught of sea happy

使用xpath的关键是会使用表达要提取的元素的表达式,使用时可参见dom4j的文档,特别详细,使用方便。

转载于:https://www.cnblogs.com/JPAORM/archive/2012/05/03/2510258.html

使用xpatn提取元素和属性相关推荐

  1. php 元素添加子元素,css,html_怎么在添加的子元素上继承父元素上已存在的子元素的属性?,css,html,javascript - phpStudy...

    怎么在添加的子元素上继承父元素上已存在的子元素的属性? 请问如何使添加后的子元素(tr)也能在鼠标经过前后继续保留其存在的子元素上的属性? dom的基础应用 window.οnlοad=functio ...

  2. 怎样设置html的元素属性,Jquery怎么设置元素的属性和样式?

    Jquery怎么设置元素的属性和样式?下面本篇文章给大家介绍一下使用jQuery操作元素属性与样式的方法.有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助. 元素属性和Dom属性 对于下 ...

  3. angularJS 自定义元素和属性

    创造自定义元素和属性的方法是:directive('string',function(){ return{}; }); ①函数接收两个参数:一个字符串(指令的名字),一个函数: ②回调函数必须返回一个 ...

  4. jsoup 标准化html代码,Jsoup从元素抽取属性,文本和HTML

    在解析获得一个Document实例对象,并查找到一些元素之后,你希望取得在这些元素中的数据.要取得一个属性的值,可以使用Node.attr(String key) 方法 对于一个元素中的文本,可以使用 ...

  5. Java程序员从笨鸟到菜鸟之(八十八)跟我学jquery(四)JQuery框架操作元素的属性与样式

    在前面几篇博客中,我们初步了解了一下jQuery的好处,基本语法,还有一些基本函数,这是学习jquery的基础,在这篇博客中,我们一起来学习一下JQuery框架操作元素的属性与样式,在web开发中,修 ...

  6. 从零开始学习jQuery (四) 使用jQuery操作元素的属性与样式

    本系列文章导航 从零开始学习jQuery (一) 开天辟地入门篇 从零开始学习jQuery (二) 万能的选择器 从零开始学习jQuery (三) 管理jQuery包装集 从零开始学习jQuery ( ...

  7. XSD详解二 - 简易元素、属性、内容限定

    一.XSD 简易元素 XML Schema 可定义 XML 文件的元素. 简易元素指那些只包含文本的元素.它不会包含任何其他的元素或属性. 1.什么是简易元素? 简易元素指那些仅包含文本的元素.它不会 ...

  8. 【AS3代码】添加/删除XML子元素及属性

    package {     import flash.display.Sprite;     import flash.xml.XMLDocument;          public class M ...

  9. jQuery修改页面元素的属性

    作为一个后台开发者,在web开发的时候会常常遇到修改前台页面的属性的问题.这两天我发现jQuery的$("#id").attr("prop","值&q ...

最新文章

  1. Sublime Text 3常用快捷键
  2. 他们翻遍用AI检测新冠的论文,一篇临床可用的也没有?!
  3. 解析 this.initialize.apply(this, arguments)
  4. SQL Server 自定义快捷键
  5. 使用VNC访问Linux桌面
  6. 计算机二级web题目(7.3)--简单应用题1
  7. libaio源码安装_MySQL5.7.17 编译安装及二进制安装详解
  8. SpringMVC中@Controller和@RequestMapping
  9. 格符\b的使用示例:每隔1秒消去1个字符
  10. MacBook安装jdk8
  11. 数字化场景——数字化营销
  12. python大众点评霸王餐_划重点:如何报名大众点评霸王餐?怎么做才能中奖?
  13. Juypter Notebook 的安装、配置、部署
  14. android粘贴,Android复制粘贴到剪贴板
  15. EtherCAT协议基础知识(Part 3)
  16. 生成模型的2022年——人工智能AIGC顶级论文回顾
  17. raid5通常需要几块盘_组成raid5阵列最少需要几块硬盘?
  18. 扫雷计算机教案,三年级上信息技术教案-扫雷大赛“鼠标的使用”清华版
  19. Linux 内核编译配置选项简介(转)
  20. 哈尔滨理工大学---沼跃鱼(待整理)

热门文章

  1. 九尾之火---算法生成的动画图像
  2. Oracle时间函数(转)
  3. Linux使用LVM逻辑卷 给分区扩容 不重启 热扩容
  4. ubuntu 18.04 设置中文输入法
  5. docker容器使用-图解
  6. mysql my.ini配置优化_求高手帮我优化一下 mysql 的 my.ini
  7. mysql多次join后count优化_mysql join count 优化案例
  8. php mysql上机题_PHP+mysql真题
  9. ctf题目:看不见的flag_记一次江西省信息安全线下CTF比赛
  10. java多线程基础_java线程基础