import java.util.List; import org.dom4j.Document; import org.dom4j.Node; import org.dom4j.io.SAXReader; import org.junit.Test; /* * 使用XPath查找xml文档数据 * */ public class DemoXPath { @Test //输出book.xml中所有price元素节点的文本值 public void test1() throws Exception { SAXReader reader = new SAXReader(); Document document = reader.read("src/main/java/book.xml"); List<? extends Node> selectNodes = document.selectNodes("//price"); for(Node node : selectNodes) { String text = node.getText(); System.out.println(text); } } @Test //输出book.xml中第二本书的price元素节点的文本值 public void test2() throws Exception { SAXReader reader = new SAXReader(); Document document = reader.read("src/main/java/book.xml"); Node selectSingleNode = document.selectSingleNode("/bookshelf/book[2]/price"); String text = selectSingleNode.getText(); System.out.println(text); } @Test //输出book.xml中第二本书和第三本书的author元素节点的文本值 public void test3() throws Exception { SAXReader reader = new SAXReader(); Document document = reader.read("src/main/java/book.xml"); List<? extends Node> selectSingleNode = document.selectNodes("/bookshelf/book[position()>1]/author"); for (Node node : selectSingleNode) { String text = node.getText(); System.out.println(text); } } @Test //输出book.xml中含有属性id的所有name的文本值 public void test4() throws Exception { SAXReader reader = new SAXReader(); Document document = reader.read("src/main/java/book.xml"); List<? extends Node> selectSingleNode = document.selectNodes("//name[@id]"); for (Node node : selectSingleNode) { String text = node.getText(); System.out.println(text); } } @Test //输出book.xml中含有属性id="1111"的name的文本值 public void test5() throws Exception { SAXReader reader = new SAXReader(); Document document = reader.read("src/main/java/book.xml"); Node selectSingleNode = document.selectSingleNode("//name[@id=\"1111\"]"); String text = selectSingleNode.getText(); System.out.println(text); } @Test //输出book.xml中含有属性id="1112"的book的author的文本值 public void test6() throws Exception { SAXReader reader = new SAXReader(); Document document = reader.read("src/main/java/book.xml"); Node selectSingleNode = document.selectSingleNode("//book[name[@id=\"1112\"]]/author"); String text = selectSingleNode.getText(); System.out.println(text); } @Test //输出book.xml中第一本book的id的属性值 public void test7() throws Exception { SAXReader reader = new SAXReader(); Document document = reader.read("src/main/java/book.xml"); Node selectSingleNode = document.selectSingleNode("//book[1]/name"); String text = selectSingleNode.valueOf("attribute::id");//获取id属性 System.out.println(text); } @Test //输出book.xml中book的name的id的属性值为1112的对应的sn的属性值 public void test8() throws Exception { SAXReader reader = new SAXReader(); Document document = reader.read("src/main/java/book.xml"); List<? extends Node> selectNodes = document.selectNodes("//book/name"); for (Node node : selectNodes) { if(node.valueOf("attribute::id").equals("1112")) { System.out.println(node.valueOf("attribute::sn")); } } } }
<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> <dependency> <groupId>dom4j</groupId> <artifactId>dom4j</artifactId> </dependency> <dependency> <groupId>jaxen</groupId> <artifactId>jaxen</artifactId> <version>1.1.6</version> </dependency>
<?xml version="1.0" encoding="utf-8"?> <bookshelf> <book> <name id="1111" sn="sdd8">Tomorrow</name> <author>Hiskell</author> <price>$40</price> </book> <book> <name id="1112" sn="sdd9">Goodbye to You</name> <author>Giddle</author> <price>$25</price> </book> <book> <name id="1113" sn="sdd0">Sea and Old</name> <author>Heminw</author> <price>$28</price> </book> </bookshelf>
相关推荐
在本文中,我们将详细介绍如何使用XPath提取XML文档数据,包括基本语法、节点选择、轴选择、谓词选择等方面的内容。 XPath基础 XPath是一种路径语言,用于在XML文档中定位和选择节点。它由W3C组织制定的,旨在提供...
本篇将深入探讨如何在Java中利用XPath来提取XML文档中的数据,以及相关的实现步骤和关键知识点。 首先,理解XPath的基本概念至关重要。XPath使用路径表达式来选取XML文档中的节点。这些路径表达式类似于文件系统中...
总结一下,XPath是XML处理中的强大工具,能够方便地定位和选取XML文档中的数据。将XML文件转换为CSV文件是一项常见的数据处理任务,通常需要结合编程语言和相应的库完成。在实际操作中,需要考虑XML的结构、XPath的...
通过阅读这份文档,你可以深入理解XPath的工作原理,并掌握如何利用XPath有效地从XML文档中提取信息,从而提升在处理XML数据时的效率。 学习XPath不仅能够提高对XML数据的处理能力,还能为理解和使用XSLT、XPath...
### Xpath提取网页数据知识点详解 #### 一、Xpath简介 Xpath是一种查询语言,主要用于在XML文档中查找信息。它可以轻松地在XML文档中通过元素和属性进行导航。虽然Xpath最初是为了处理XML而设计的,但它同样适用于...
- 数据检索:XPath用于在XML文档中快速定位所需数据,提高了数据提取的效率。 - 文档呈现:XSLT可以根据业务需求,将XML数据转换为用户友好的HTML页面或其他格式,适应不同终端和应用场景。 - 数据交换:XML作为...
XPath是XML文档遍历和数据提取的重要工具,它允许我们以简洁的方式定位XML文档中的元素、属性和其他节点。在这个场景中,“Xpath读取xml文件,实现文件缓存”指的是利用XPath来高效地检索XML数据,并通过缓存机制...
JsonPath是一种用于从JSON文档中提取数据的语言,其语法与XPath在XML文档中的操作非常相似。XPath是XML处理中常用的一种路径表达式语言,而JsonPath则是为JSON数据设计的查询语言。在Java开发中,处理JSON格式的数据...
XPath,全称XML Path Language,是一种在XML文档中查找信息的语言。它被设计用来选取XML文档中的节点,如元素、属性、文本等。XPath使用路径表达式来选取节点,类似于我们在网页浏览器中输入URL来访问特定页面的方式...
XPath可以帮助我们高效地从XML文档中提取所需的数据并填充Map。例如,我们可以使用`javax.xml.xpath`包提供的`XPathFactory`、`XPath`和`XPathConstants`类来实现这一过程。 4. **避免生成过多的Bean类** 当XML...
综合以上信息,我们可以得出,“google-xpath提取器插件”是一款专为Google Chrome浏览器设计的工具,它的主要功能是帮助用户轻松地获取网页元素的XPath路径,从而进行网页数据的提取和分析。用户只需简单几步即可...
例如,使用XPath可以很容易地找到文档中具有特定属性或值的元素,这对于数据提取和处理尤其有用。 **高性能** PUGIXML的高效性体现在两个方面:内存管理和解析速度。库的设计避免了不必要的内存分配,减少了CPU和...
通过理解XPath的基本语法和使用DOM4J的API,开发者能够高效地导航XML文档,提取所需的数据,从而提高XML处理的效率和灵活性。在实际项目中,XPath不仅可以用于简单的查询,还能在XML验证、转换和数据绑定等方面发挥...
XPath(XML Path Language)是一种用于在XML文档中查找信息的语言,它提供了简便的方式来遍历XML文档结构并提取所需数据。XPath基于XML文档的树状结构,通过路径表达式来定位XML文档中的节点,包括元素、属性、文本...
XPath通过路径表达式来选取XML文档中的节点,它是XML处理中的重要工具,尤其在数据绑定和数据处理框架中,如MyBatis。 MyBatis是一个优秀的Java持久层框架,它简化了数据库操作,将SQL语句与Java代码解耦,通过XML...
在这个场景中,我们将探讨如何使用Kettle将XML文档转换为数据表结构。 XML是一种通用的数据交换格式,广泛用于存储和传输结构化信息。然而,很多数据库和分析工具更倾向于以表格形式存储数据。Kettle提供了解决这个...