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

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轴

轴表示与上下文(当前)节点的关系,用于在树上定位相对于该节点的节点。

轴名称 结果
ancestor 选择当前节点的所有祖先(父、祖父母等)
ancestor-or-self 选择当前节点和当前节点本身的所有祖先(父、祖父母等)
attribute 选择当前节点的所有属性
child 选择当前节点的所有子节点
descendant 选择当前节点的所有子代(子代、孙代等)
descendant-or-self 选择当前节点和当前节点本身的所有子代(子代、子代等)
following 选择文档中当前节点结束标记之后的所有内容
following-sibling 选择当前节点之后的所有同级节点
namespace 选择当前节点的所有命名空间节点
parent 选择当前节点的父节点
preceding 选择文档中当前节点之前出现的所有节点,但祖先、属性节点和命名空间节点除外
preceding-sibling 选择当前节点之前的所有同级节点
self 选择当前节点


位置路径表达式

位置路径可以是绝对路径,也可以是相对路径。

绝对位置路径以斜杠(/)开头,相对位置路径不以斜杠(/)开头。在这两种情况下,位置路径都由一个或多个步骤组成,每个步骤用斜线分隔:

An absolute location path:

/step/step/...

A relative location path:

step/step/...

将根据当前节点集中的节点对每个步骤进行求值。

步骤包括:

  • 轴(定义选定节点和当前节点之间的树关系)
  • 节点测试(标识轴内的节点)
  • 零个或多个谓词(以进一步细化选定的节点集)

The syntax for a location step is:

axisname::nodetest[predicate]

实例

实例 结果
child::book 选择作为当前节点子节点的所有书本节点
attribute::lang 选择当前节点的lang属性
child::* 选择当前节点的所有元素子级
attribute::* 选择当前节点的所有属性
child::text() 选择当前节点的所有文本节点子节点
child::node() 选择当前节点的所有子节点
descendant::book 选择当前节点的所有账簿子体
ancestor::book 选择当前节点的所有图书祖先
ancestor-or-self::book 选择当前节点的所有书本祖先-如果当前节点是书本节点,则也选择它
child::*/child::price 选择当前节点的所有子节点