`
ljl_xyf
  • 浏览: 636461 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

XPath 语法 org.dom4j.Document

    博客分类:
  • java
阅读更多

XPath 使用路径表达式来选取 XML 文档中的节点或节点集。节点是通过沿着路径 (path) 或者步 (steps) 来选取的。

XML 实例文档

我们将在下面的例子中使用这个 XML 文档。

<?xml version="1.0" encoding="ISO-8859-1"?>

<bookstore>

<book>
  <title lang="eng">Harry Potter</title>
  <price>400电话
</price>
</book>

<book>
  <title lang="eng">Learning XML</title>
  <price>http://www.my400800.cn
</price>
</book>

</bookstore>

选取节点

XPath 使用路径表达式在 XML 文档中选取节点。节点是通过沿着路径或者 step 来选取的。

下面列出了最有用的路径表达式:

表达式 描述
nodename 选取此节点的所有子节点。
/ 从根节点选取。
// 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。
. 选取当前节点。
.. 选取当前节点的父节点。
@ 选取属性。

实例

在下面的表格中,我们已列出了一些路径表达式以及表达式的结果:

路径表达式 结果
bookstore 选取 bookstore 元素的所有子节点。
/bookstore

选取根元素 bookstore。

注释:假如路径起始于正斜杠( / ),则此路径始终代表到某元素的绝对路径!

bookstore/book 选取属于 bookstore 的子元素的所有 book 元素。
//book 选取所有 book 子元素,而不管它们在文档中的位置。
bookstore//book 选择属于 bookstore 元素的后代的所有 book 元素,而不管它们位于 bookstore 之下的什么位置。
//@lang 选取名为 lang 的所有属性。

谓语(Predicates)

谓语用来查找某个特定的节点或者包含某个指定的值的节点。

谓语被嵌在方括号中。

实例

在下面的表格中,我们列出了带有谓语的一些路径表达式,以及表达式的结果:

路径表达式 结果
/bookstore/book[1] 选取属于 bookstore 子元素的第一个 book 元素。
/bookstore/book[last()] 选取属于 bookstore 子元素的最后一个 book 元素。
/bookstore/book[last()-1] 选取属于 bookstore 子元素的倒数第二个 book 元素。
/bookstore/book[position()<3] 选取最前面的两个属于 bookstore 元素的子元素的 book 元素。
//title[@lang] 选取所有拥有名为 lang 的属性的 title 元素。
//title[@lang='eng'] 选取所有 title 元素,且这些元素拥有值为 eng 的 lang 属性。
/bookstore/book[price>35.00] 选取 bookstore 元素的所有 book 元素,且其中的 price 元素的值须大于 35.00。
/bookstore/book[price>35.00]/title 选取 bookstore 元素中的 book 元素的所有 title 元素,且其中的 price 元素的值须大于 35.00。

选取未知节点

XPath 通配符可用来选取未知的 XML 元素。

通配符 描述
* 匹配任何元素节点。
@* 匹配任何属性节点。
node() 匹配任何类型的节点。

实例

在下面的表格中,我们列出了一些路径表达式,以及这些表达式的结果:

路径表达式 结果
/bookstore/* 选取 bookstore 元素的所有子元素。
//* 选取文档中的所有元素。
//title[@*] 选取所有带有属性的 title 元素。

选取若干路径

通过在路径表达式中使用“|”运算符,您可以选取若干个路径。

实例

在下面的表格中,我们列出了一些路径表达式,以及这些表达式的结果:

路径表达式 结果
//book/title | //book/price 选取 book 元素的所有 title 和 price 元素。
//title | //price 选取文档中的所有 title 和 price 元素。
/bookstore/book/title | //price 选取属于 bookstore 元素的 book 元素的所有 title 元素,以及文档中所有的 price 元素。
分享到:
评论

相关推荐

    DOM4j属性的详细介绍及相关的例子

    **DOM4j 知识点详解** DOM4j 是一个灵活且功能强大的Java库,用于处理XML文档。它提供了一套全面的API来操作XML,包括读取、创建、修改和解析XML文档。以下是DOM4j中一些主要接口及其功能的详细解释: 1. **...

    dom4j用到的xpath\dom4j等一系列jar包

    import org.dom4j.Document; import org.dom4j.DocumentHelper; import org.dom4j.Element; import org.dom4j.XPath; // 创建XML文档 String xml = "&lt;root&gt;&lt;element attr='value'&gt;Text&lt;/element&gt;&lt;/root&gt;"; Document...

    dom4j中xpath的使用

    **DOM4J中XPath的使用** ...了解XPath的语法和DOM4J的API,你就能高效地处理XML文档,无论是查找、修改还是提取信息。记住,实践是检验理解的最好方式,多写代码,多尝试不同的XPath表达式,你的技能会越来越熟练。

    Dom4j 解析Xml文档及 XPath查询 学习笔记

    2. **创建Document对象**:使用`org.dom4j.DocumentHelper`类的`parseText()`或`parse()`方法,传入XML字符串或输入流,可以创建一个`Document`对象,它是XML文档的根节点。 ```java String xmlString = "&lt;root&gt;...

    dom4j.jar包

    3. XPath查询:DOM4J实现了XPath表达式,允许开发者通过简洁的路径语法快速定位XML文档中的特定节点,极大地提高了代码的可读性和效率。 4. 转换和序列化:DOM4J可以将XML文档转换为Java对象,反之亦然,这在数据...

    Java解析XML汇总DOM_SAX_JDOM_DOM4j_XPath

    ### Java解析XML技术详解:DOM、SAX、JDOM、DOM4j与XPath #### 一、基础知识概览 在Java开发中,处理XML文件是一项常见的任务。XML(Extensible Markup Language,可扩展标记语言)是一种用于存储和传输数据的标准...

    Dom4j的详细介绍

    import org.dom4j.Document; import org.dom4j.DocumentHelper; import org.dom4j.Element; public class Dom4jExample { public static void main(String[] args) { // 解析XML文件 Document document = ...

    dom4j_apidocs.rar

    在学习和使用 DOM4J API 文档时,应重点关注如何创建和操作 `Document` 和 `Element`,理解 XPath 查询的语法,以及如何实现自定义的解析和输出处理器。同时,实践编写代码以解析、生成和操作 XML 文档,将有助于...

    nekohtml+dom4j

    在这个组合中,nekohtml扮演着核心角色,而dom4j则提供了强大的DOM(Document Object Model)操作能力,同时支持XPath查询语言。 nekohtml是一个开源的Java库,它的主要功能是对不规范的HTML进行清理和补全,将其...

    dom+xpath读取xml并导入oracle.rar

    而DOM(Document Object Model)与XPath(XML Path Language)则是处理XML文档的重要工具。本文将深入探讨如何使用DOM和XPath来读取XML数据,并将其有效导入到Oracle数据库中。 首先,DOM是一种将XML文档结构化为树...

    dom4j-2.1.1.jar+jaxen-1.1.6.jar.rar

    首先,DOM4J是Java的一个开源XML处理库,它的全称是“Document Object Model for Java”。DOM4J提供了全面的API,使得开发者可以轻松地读取、写入、修改和操作XML文档。它支持XPath(XML路径语言),使得通过简单的...

    androidDom4J解析xml

    import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.io.SAXReader; public class MainActivity extends AppCompatActivity { @Override protected ...

    dom4j jar包

    - **Document对象**:代表整个XML文档,是DOM4J的核心,包含了XML文档的所有信息。 - **Element对象**:表示XML文档中的元素节点,可以包含属性、子元素和其他内容。 - **Attribute对象**:表示元素的属性。 - **...

    dom4j-1.6.1.jar与jaxen-1.1-beta-6.jar

    1. **DOM模型**:dom4j支持W3C DOM(Document Object Model)接口,允许开发者以树形结构操作XML文档。它比标准DOM更轻量级,执行效率更高。 2. **SAX解析**:除了DOM,dom4j还支持SAX(Simple API for XML),这是...

    dom4j类库+源码

    DOM4J这个名字中的"DOM"代表Document Object Model,是一种国际标准,用于表示XML文档的树结构。然而,DOM4J并非W3C定义的标准DOM,而是一个基于Java的DOM实现,它具有更高效、更灵活的特性。"4J"则意味着它为Java...

    PHP100视频教程89:PHP.XML.的.DOMDocument.读取功能.rar

    - **查找节点**:`DOMDocument::getElementsByTagName()`通过标签名查找节点,`DOMXPath`对象可以进行更复杂的查询。 5. **DOMXPath**: DOMXPath提供了一个更灵活的查询机制,允许我们根据XPath表达式找到XML...

    Demo4j和XPath解析XML的文件路径表达式(ZVON.org - X 路径教程)

    通过理解XPath的基本语法和使用DOM4J的API,开发者能够高效地导航XML文档,提取所需的数据,从而提高XML处理的效率和灵活性。在实际项目中,XPath不仅可以用于简单的查询,还能在XML验证、转换和数据绑定等方面发挥...

    java_Dom4j解析XML详解.docx

    import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.io.SAXReader; public static Document loadXML(String filePath) { Document document = null; try { SAXReader saxReader ...

    Dom4J采用XPath操纵XML教程及例子

    2. **解析XML文档**:使用Dom4J的`DocumentHelper`类,我们可以加载XML文件并创建一个`Document`对象,如下: ```java String xmlString = "&lt;root&gt;&lt;element attr='value'&gt;Text&lt;/element&gt;&lt;/root&gt;"; Document ...

    xpath的jar包

    Jaxen项目是一个开源项目,旨在提供一个独立于特定XML API的通用XPath引擎,支持DOM、DOM4J、JDOM、XOM等多种XML解析器。这样,开发者可以在不同的XML处理框架之间轻松切换,而不必重新编写XPath代码。 在使用XPath...

Global site tag (gtag.js) - Google Analytics