什么是 XPath? | 第 1 页(共2 页) |
XML 路径语言(XPath)是一组语法和语义,用于引用 XML 文档的一些部分。XPath 的目的是让其他规范使用,比如 XSL Transformations (XSLT) 和 XML Pointer Language (XPointer)。要帮助您理解 XPath 是什么,我将通过展示一些与 AuctionItemList.xml 有关的例子开始。
XPath 表达式确定了 XML 文档中的一组节点。这组节点可以包含零或多个节点。例如,如果应用到 AuctionItemList.xml,XPath 表达式 /list
就确定了一个单独的节点――list
根元素。
The XPath 表达式 /list/item
确定了所有 item
元素。
XPath 使用正斜杠(/
)符号,这与 Unix shell 相似。这就是 XPath 可以用在 Uniformed Resource Identifiers (URI) (比如URL)中的原因。这实际上是 XPath 名称的来源:像在 URL 中一样使用路径符号。
合法的 XPath 表达式可以包含谓词(predicate)。谓词包含布尔表达式,它们针对上下文节点集中的每个节点进行了测试。如果为真,将把节点保存在确定的节点集中;否则,就丢弃节点。在减少结果集中,谓词是有用的。例如,下面 XPath 表达式只确定第二项:
/list/item[currentPrice>1000.0]
XPath 表达式可以引用属性及 XML 文档中的元素。当引用属性时,使用 @
字符。例如,下面的 XPath 表达式确定了 currentPrice
元素,其 currency 属性包含值 EUR
:
/list/item/currentPrice[@currency="EUR"]
XPath 也提供函数,这可能是非常有用的。我将在 函数库 中,详细展示这些函数,但这里是一个体验。下面的 XPath 表达式确定了 item 的 description
元素,其 type
属性是“IndividualOffer”
(并具有值 2MP digital camera
):
/list/item[starts-with(@type,"Ind")]/description
在使用的 XML 编译器中测试上面的 XPath 表达式:打开 AuctionItemList.xml,然后在 XPath 计算程序中输入表达式,看选定了哪些节点。
OK,现在已经向您介绍了 XPath!至今,您已经学习了 XPath 是一种语言,用于确定 XML 文档的部分。您已经看到 XPath 表达式看起来像什么,以及它如何引用 XML 文档内部的元素和属性。我也已经向您展示了,XPath 如何提供函数用于操纵数据。但这只是一个快速的概述;在其余的节中,我将更加详细讨论所有这些点――以及 XPath 的更多方面。例如,我将分析 XPath 名称空间和特殊字符(比如 //
和 *
),并向您展示,并非所有 XPath 表达式具有上面例子中展示的形式(称为简化位置路径)。