本文概述
- 选择节点
- 谓词
- 选择未知节点
- 选择几个路径
在XPath中, 路径表达式用于选择XML文档中的节点或节点集。通过遵循路径或步骤选择节点。
让我们来看一个XPath的语法示例。在这里, 我们获取一个XML文档。
<
?xml version="1.0" encoding="UTF-8"?>
<
bookstore>
<
book>
<
title lang="en">
Three Mistakes of My Life<
/title>
<
price>
110<
/price>
<
/book>
<
book>
<
title lang="en">
Immortals of Meluha<
/title>
<
price>
200<
/price>
<
/book>
<
/bookstore>
选择节点用于选择节点的路径表达式为:
Index | Expression | Description |
---|---|---|
1) | nodename | 选择所有名称为” nodename” 的节点 |
2) | / | 从根节点中选择。 |
3) | // | 无论位置在哪里, 都从当前节点中选择与选择匹配的节点。 |
4) | . | 选择当前节点 |
5) | .. | 选择当前节点的父节点 |
6) | @ | Selects attributes |
Path Expression | Result |
---|---|
bookstore | 选择所有名称为” bookstore” 的节点 |
/bookstore | 选择根元素书店。注意:如果路径以斜杠(/)开头, 则始终表示元素的绝对路径! |
bookstore/book | 选择所有作为书店子级的书本元素。 |
//book | 选择所有书籍元素, 无论它们在文档中的位置如何。 |
bookstore//book | 选择作为bookstore元素后代的所有book元素, 无论它们在bookstore元素下的位置如何。 |
//@lang | 选择所有名为lang的属性。 |
谓词始终嵌入在方括号中。
在下表中, 我们列出了一些带有谓词的路径表达式以及表达式的结果:
路径表达 | Result |
---|---|
/bookstore/book[1] | 选择第一本书元素, 它是bookstore元素的子元素。注意:在IE 5, 6, 7, 8, 9中, 第一个节点是[0], 但根据W3C, 它是[1]。要解决IE中的此问题, 请将选择语言设置为XPath:在JavaScript中:xml.setProperty(” SelectionLanguage” , ” XPath” ); |
/bookstore/book[last()] | 选择作为bookstore元素的子元素的最后一个book元素。 |
/bookstore/book[last()-1] | 选择最后一个但只有一个book元素, 它是bookstore元素的子元素。 |
/bookstore/book[position()< 3] | 选择作为书店元素的子元素的前两个书元素。 |
//title[@lang] | 选择所有具有名为lang的属性的标题元素。 |
//title[@lang=’ en’ ] | 选择所有具有” lang” 属性且值为” en” 的标题元素。 |
/bookstore/book[price> 100] | 选择书店元素中所有价格元素大于100的书元素 |
/bookstore/book[price> 100]/title | 选择bookstore元素中book元素的所有title元素, 这些title元素的price元素的值大于100 |
Wildcard | Description |
---|---|
* | 匹配任何元素节点 |
@* | 匹配任何属性节点 |
node() | 匹配任何种类的任何节点 |
Path Expression | Result |
---|---|
/bookstore/* | 选择书店元素的所有子元素节点 |
//* | 选择文档中的所有元素 |
//title[@*] | 选择至少具有任何一种属性的所有标题元素 |
路径表达 | Result |
---|---|
//书/标题| //书/价格 | 选择所有书籍元素的所有标题和价格元素 |
//标题| //价钱 | 选择文档中的所有标题和价格元素 |
/ bookstore / book / title | //价钱 | 选择bookstore元素的book元素的所有title元素以及文档中的所有price元素 |
推荐阅读
- XPath轴介绍和示例
- XPath相对路径
- XPath节点
- XPath表达式
- 什么是XPath
- XSLT xsl(message元素)
- XSLT xsl(import元素)
- XSLT xsl(key元素)
- poj 2385 Apple Catching(记录结果再利用的动态规划)