XML 教程

XML 教程 XML 简介 XML 用途 XML 树结构 XML 语法 XML 元素 XML 属性 XML 命名空间 XML Display XML HttpRequest XML Parser XML DOM XML XPath XML XSLT XML XQuery XML XLink XML 验证器 XML DTD XML Schema XML 服务器 XML 实例 XML 测验

XML AJAX

AJAX 简介 AJAX XMLHttp AJAX 请求 AJAX 响应 AJAX XML 文件 AJAX PHP AJAX ASP AJAX 数据库 AJAX 应用程序 AJAX 实例

XML DOM

DOM 简介 DOM 节点 DOM 访问节点 DOM 节点信息 DOM 节点列表 DOM 节点遍历 DOM 节点导航 DOM 获取节点 DOM 更改节点 DOM 删除节点 DOM 替换节点 DOM 创建节点 DOM 添加节点 DOM 克隆节点 DOM 实例

XPath 教程

XPath 简介 XPath 节点 XPath 语法 XPath 轴(Axes) XPath 运算符 XPath 实例

XSLT 教程

XSLT 简介 XSL 语言 XSLT 转换 XSLT <template> XSLT <value-of> XSLT <for-each> XSLT <sort> XSLT <if> XSLT <choose> XSLT Apply XSLT 客户端 XSLT 服务端 XSLT 编辑 XML XSLT 实例

XQuery 教程

XQuery 简介 XQuery 实例 XQuery FLWOR 表达式 XQuery FLWOR + HTML XQuery 术语 XQuery 语法 XQuery 添加元素和属性 XQuery 选择和过滤 XQuery 函数

XML DTD

DTD 简介 DTD 构建模块 DTD 元素 DTD 属性 DTD 元素 vs. 属性 DTD 实体 DTD 实例

XSD Schema

XSD 简介 XSD How To XSD <schema> XSD 元素 XSD 属性 XSD 限制

XSD Complex

XSD 复杂元素 XSD 空元素 XSD 仅限元素 XSD 纯文本元素 XSD 混合 XSD 指示器 XSD <any> XSD <anyAttribute> XSD 替换 XSD 实例

XSD 数据类型

XSD 字符串 XSD 日期 XSD 数值 XSD 杂项 XSD 参考手册

Web Services

XML Services 简介 XML WSDL XML SOAP XML RDF XML RSS

参考手册

DOM 节点类型 DOM 节点 DOM NodeList DOM NamedNodeMap DOM 文档 DOM 元素 DOM 属性 DOM 文本 DOM CDATA DOM 注释 DOM XMLHttpRequest DOM 解析器 XSLT 元素 XSLT/XPath 函数


XPath 语法

XPath使用路径表达式来选择XML文档中的节点或节点集。通过遵循一个或多个路径步骤来选择节点。


XML实例文档

我们将在下面的实例中使用以下XML文档。

<?xml version="1.0" encoding="UTF-8"?>

<bookstore>

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

<book>
  <title lang="en">Learning XML</title>
  <price>39.95</price>
</book>

</bookstore>

选择节点

XPath使用路径表达式来选择XML文档中的节点。通过遵循一个或多个路径步骤来选择节点。下面列出了最有用的路径表达式:

表达式 描述
nodename 选择名为"nodename"的所有节点
/ 从根节点中选择
// 从当前节点中选择文档中的节点,无论它们位于何处,都与所选节点匹配
. 选择当前节点
.. 选择当前节点的父节点
@ 选择属性

在下表中,我们列出了一些路径表达式和表达式的结果:

路径表达式 结果
bookstore 选择名称为"bookstore"的所有节点
/bookstore 选择根元素

注释: 如果路径以斜杠(/)开头,它总是表示元素的绝对路径!

bookstore/book 选择所有属于书店子目录的书籍元素
//book 选择所有书本元素,无论它们在文档中的何处
bookstore//book 选择作为bookstore元素的后代的所有book元素,无论它们在bookstore元素下的何处
//@lang 选择名为lang的所有属性


谓词

谓词用于查找包含特定值的特定节点或节点。

谓词总是嵌入在方括号中。

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

路径表达式 结果
/bookstore/book[1] 选择作为bookstore元素的子元素的第一个book元素。

注释: 在IE 5、6、7、8、9中,第一个节点是[0],但根据W3C,它是[1]。要在IE中解决此问题,请将SelectionLanguage设置为XPath:

In JavaScript: xml.setProperty("SelectionLanguage","XPath");
/bookstore/book[last()] 选择书店元素的子元素的最后一个book元素
/bookstore/book[last()-1] 选择最后一个book元素,它是bookstore元素的子元素
/bookstore/book[position()<3] 选择作为bookstore元素的子元素的前两个book元素
//title[@lang] 选择所有具有名为lang属性的标题元素
//title[@lang='en'] 选择具有值为"en"的"lang"属性的所有标题元素
/bookstore/book[price>35.00] 选择书店元素中具有值大于35.00的price元素的所有book元素
/bookstore/book[price>35.00]/title 选择book元素的所有标题元素book元素的price元素的值大于35.00

选择未知节点

XPath通配符可用于选择未知的XML节点。

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

在下表中,我们列出了一些路径表达式和表达式的结果:

路径表达式 结果
/bookstore/* 选择书店元素的所有子元素节点
//* 选择文档中的所有元素
//title[@*] 选择至少具有一个任何类型属性的所有标题元素

选择多条路径

通过在XPath表达式中使用|操作符,可以选择多个路径。

在下表中,我们列出了一些路径表达式和表达式的结果:

路径表达式 结果
//book/title | //book/price 选择所有book元素的所有title和price元素
//title | //price 选择文档中的所有标题和价格元素
/bookstore/book/title | //price 选择文档中book元素的book元素的所有title元素和price元素