`
stella
  • 浏览: 15153 次
  • 性别: Icon_minigender_2
最近访客 更多访客>>
社区版块
存档分类
最新评论

标准XPath语法整理

    博客分类:
  • XML
XML 
阅读更多

XPath 语法

 

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

XML 实例文档

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

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

<bookstore>

<book>
  <title lang="eng">Harry Potter</title>
  <price>29.99</price>
</book>

<book>
  <title lang="eng">Learning XML</title>
  <price>39.95</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 元素。
分享到:
评论

相关推荐

    C# .Net应用资料整理

    - **XPath语法**: 在C#中,XPath用于从XML文档中选择节点,提供了简洁的方式来导航XML结构。 2. **ASP.NET框架**: - **asp.net **:这是ASP.NET中定义服务器端代码的标记,用于嵌入VB.NET或C#代码。 - **ASP...

    Web Data Managemenrt by Serge Abiteboul Ioana Manolescu

    - **XML语法**:包括标签、属性、注释等元素的使用规则。 - **类型与命名空间**:XML文档可以通过定义元素类型和使用命名空间来增强其语义清晰度。 - **是否进行类型声明**:讨论了XML文档是否应该声明其元素类型...

    xml文件解析网页资料整理

    Libxml2是 GNOME 项目的一个组件,是一个强大的、开源的XML解析库,支持多种XML相关的标准,如XPath、XInclude、XPointer、XML Schema和 Relax NG。 **XML的基本概念:** XML文件由一系列的元素构成,每个元素都有...

    W3C速查手册HandBood系列(By FengGe整理)

    W3C速查手册是由FengGe整理的一系列关于Web标准和开发的资源,它包含了丰富的W3C相关知识,旨在帮助开发者快速查找和理解Web技术规范。W3C,即万维网联盟(World Wide Web Consortium),是制定Web标准的国际组织,...

    本人精心整理的XML 学习的PPT

    1. 格式标准:遵循 XML 的语法规则。 2. 有效性:文档需符合 DTD 或 Schema 规则。 3. 根元素:每个 XML 文档有一个顶级元素,即根元素。 4. 元素嵌套:元素必须正确嵌套,不能交叉或遗漏结束标签。 5. 标签命名:...

    xml文件编辑器

    4. **格式化**:自动整理XML代码,使其按照标准格式排列,便于阅读。 5. **查找与替换**:支持在整个XML文档中查找和替换文本,这对于大型XML文件尤其有用。 6. **折叠/展开**:允许用户折叠或展开XML元素,以便专注...

    xslt手册(chm格式)

    本手册是作者根据网络资源综合整理而成,相较于之前的版本,新增了更多内容,覆盖了XSLT的各个方面,旨在提供一个更加全面的参考。 首先,我们来了解一下XSLT的基本概念。XSLT基于XPath,XPath是XML文档中的数据...

    jstl.jar包整理

    **JSTL(JavaServer Pages Standard Tag Library)**是Java Web开发中的一种标准标签库,它为JavaServer Pages(JSP)提供了一种简洁而有效的方式来处理常见的Web开发任务。这个`jstl.jar`包就是JSTL的核心库文件,...

    NPP xml tools

    只需点击按钮,就能快速检查XML文件是否符合标准,找出潜在的语法错误或遗漏的结束标签,确保文件的正确性。对于需要处理大量XML数据的人来说,这一功能大大提高了工作效率。 NPP XML Tools还包括查找和替换XML节点...

    c# winform开发的Xml编辑器

    5. **XML格式化**:提供一个“格式化”按钮,使用户可以将杂乱无章的XML代码整理成标准格式。这需要编写代码来处理XML文档的缩进和换行。 6. **保存和加载XML文件**:实现文件菜单中的“打开”和“保存”功能,允许...

    notepad插件

    验证功能会检查JSON数据是否遵循标准的语法,确保其有效性。如果存在错误,插件还会提供详细的错误信息,帮助开发者迅速修复。 安装这两个插件后,无论是在处理XML文件还是JSON文件时,Notepad++都能成为一个更为...

    Java面试题——重整理版

    1. **J2SE**:Java的基础,包括语法、面向对象编程、集合框架、多线程、异常处理、IO流、反射、枚举、泛型等。`final`关键字用于声明不可变对象、方法和类,防止被继承或修改;`finally`块保证了代码的执行,常用于...

    javaWeb课程摘要整理.docx

    - **JS概述**:基于ECMAScript标准,是一种弱类型、解释型、事件驱动的语言,不支持函数重载。 - **JS特点**:具有交互性、安全性、跨平台性。全等运算符`===`用于严格比较,`with`语句和`for...in`循环是其特有的...

    最新系统分析师考试复习资料(精简整理版).pdf

    - 在 JSP 中使用 XPath 或 XSLT 处理 XML 数据。 - **XML 与 JSP 技术联合的优越性** - **数据交换**:XML 作为数据交换格式,易于被 JSP 处理并展示。 - **灵活性**:JSP 可以根据需要动态生成 XML 内容。 - *...

    XML编辑软件

    Oxygen XML Editor是一款功能强大的专业级XML编辑工具,它支持多种XML相关的标准,如XPath、XSLT、XQuery等。这款编辑器提供了一整套的XML编辑、验证、转换和调试工具。其特色包括: - 强大的代码高亮和自动完成,...

    基于Python的网络爬虫的设计与实现.docx

    它使用XPath表达式来定位元素,性能优于BeautifulSoup,但使用前需要熟悉XPath语法。 #### 数据处理与存储 一旦数据被提取出来,就需要对其进行清洗和整理,以适应后续的分析需求。Python中有许多库可以帮助完成这...

    sublime XML插件

    XML文件因其严格的语法和层次结构,往往需要定期进行美化和整理,以保持代码的可读性和易于维护。Sublime Text的XML插件可以自动进行缩进调整、元素对齐以及注释整理,使得原本杂乱无章的XML代码变得井然有序。 2. ...

    Notepad++ json和xml插件

    2. **格式化**:可以将杂乱无章的XML代码整理成标准的缩进格式,便于阅读。 3. **XPath查询**:支持XPath(XML Path Language)查询,允许用户通过简单的语句快速查找和提取XML文档中的特定信息。 4. **XML到HTML...

    数据采集与预处理(包括网络数据爬取和使用pandas进行简单的数据预处理)

    掌握XPath的基本术语和语法,可以帮助更精确地定位和提取所需元素。 接下来是数据预处理,这部分工作通常在数据被收集后进行,目的是清洗和转化原始数据,使其更适合进一步分析。Pandas是Python中广泛使用的数据...

    xmlblueprint-7.5.0423.zip

    4. **XPath和XSLT支持**:支持XPath查询语言,让用户能够快速定位和提取XML文档中的特定数据;同时,它还支持XSLT(Extensible Stylesheet Language Transformations),用于转换XML文档,将其转化为其他格式,如...

Global site tag (gtag.js) - Google Analytics