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 元素。 |
分享到:
相关推荐
在JavaScript中,XPath主要被用来查询DOM(Document Object Model)结构中的节点。通过XPath表达式,我们可以方便地选取XML或HTML文档中的元素,而无需遍历整个DOM树。以下是对给定标题和描述中所列举的XPath特性的...
### 使用JavaScript与XPath解析XML元素 #### XPATH简介 XPath是一种在XML文档中查找信息的语言。它使用路径表达式来选择节点或集合节点,并且能够处理来自XML文档的数据,为构建XSLT这样的XML应用程序提供了强有力...
在JavaScript中,XPath主要应用于AJAX开发,即在客户端与服务器交互时解析返回的XML数据。例如,服务器端返回一个简单的XML响应,如 `<resume><name>朱元璋</name><age>18</age></resume>`,客户端可以通过...
在JavaScript中,解析XML文档并使用XPath进行查询是一项常见的任务,尤其在开发跨浏览器的Web应用时,确保代码兼容性尤为重要。XPath是一种在XML文档中查找信息的语言,它允许我们根据节点的名称、属性、值或其他...
在这个“asp.net操作xml代码示例和js小功能实例”项目中,我们将探讨如何在ASP.NET环境下处理XML文档,以及JavaScript的一些实用技巧。 首先,让我们深入了解一下ASP.NET操作XML的要点。在ASP.NET中,我们可以使用...
查询XML文档中的特定节点,可以使用`getElementsByTagName`或`selectNodes`方法,后者基于XPath表达式,提供了更强大的查询能力。 ```javascript var a = doc.getElementsByTagName("ttyp"); // 或者 var a = doc....
7. **selectNodes** 和 **selectSingleNode**:使用XPath表达式来选择节点集合或单个节点。 XPath(XML Path Language)是一种在XML文档中查找信息的语言。XPath.chm可能是XPath的参考指南,它可能包含: 1. **...
### JavaScript读取XML文件的方法详解 #### 一、引言 在现代Web开发中,XML(可扩展标记语言)作为一种轻量级的数据交换格式,在早期的Web应用中扮演着重要的角色。JavaScript作为前端的主要编程语言之一,具备强大...
- **`selectNodes`** 和 **`selectSingleNode`**:这些方法允许通过XPath表达式选择节点。 - **修改节点**: - **创建新节点**:`createElement` 创建元素节点;`createTextNode` 创建文本节点。 - **添加、删除...
- **`selectNodes(xpath)`**: 使用 XPath 查询选择一组节点。 - **`getElementById(id)`**: 根据 ID 获取一个节点。 - **`getElementsByTagName(tagName)`**: 根据标签名称获取一组节点。 - **`getAttribute(name)`*...
2. **使用`selectNodes`方法根据XPath表达式获取节点**: - XPath是一种用于定位XML文档中信息的语言。 - 示例代码如下: ```javascript var nodes = xmlDoc.selectNodes("//" + nodeName); for (var i = 0; i ...
2. **`selectNodes("XPATH")`**:根据提供的XPath表达式选择多个节点。 3. **`getElementById("id")`**:通过ID获取指定节点。 4. **`getElementsByTagName("tagName")`**:获取具有指定标签名称的所有节点。 5. **`...
- **selectNodes**和**selectSingleNode**:根据XPath表达式选择节点。 掌握这些属性和方法是JavaScript DOM操作的基础,它们使得开发者能够动态地创建、修改和删除网页内容,实现丰富的交互性和动态效果。在实际...
- **定义**:`selectNodes`方法根据XPath表达式选择一组节点。 - **示例代码**: ```javascript var nodes = document.selectNodes('/html/body/div'); // 假设存在该方法 ``` ##### 21. selectSingleNode(选择...
- `selectNodes`、`selectSingleNode`:根据XPath表达式选取节点。 - `transformNode`、`transformNodeToObject`:使用XSLT转换节点。 理解DOM中的节点关系是关键,它们形成了一个树形结构,根节点位于顶部,然后...
2.2.4 `selectNodes`: 根据XPath表达式选择多个节点。返回一个`IXMLDOMNodeList`对象,包含了所有匹配的节点。 2.2.5 `getElementsByTagName`: 根据标签名选择所有节点。返回一个`IXMLDOMNodeList`对象,包含了所有...