XPath 命名空间节点
命名空间节点几乎从不用于 XSLT 样式表;它们的存在主要是为了 XSLT 处理器的利益。
请记住,命名空间的声明(例如 xmlns:auth="http://www.authors.net"),即使它在技术上是 XML 源中的一个属性,也变成了一个命名空间节点,而不是一个属性节点。
XPath 注释节点
注释节点也非常简单——它包含一些文本。
源文档中的每条注释都成为一个注释节点。
注释节点的文本包含注释中的所有内容,除了开头的 <!- 和结尾的 -->
。
例如:
<!--Test is test comment-->
XPath 将 XML 文档视为节点树。
该树非常类似于文档对象模型,例如:DOM 树
XPath 数据模型中有七种节点:
- 根节点(每个文档只有一个)
- 元素节点
- 属性节点
- 文本节点
- 注释节点
- 处理指令节点
- 命名空间节点
XPath 属性节点
对于 XML 源文档中的每个属性,元素节点至少是一个属性节点的父节点。
这些节点用于定义有关特定元素节点的特征。
例如,在我们的 XML 片段中,‘year’ 是一个属性节点。
XPath 元素节点
原始 XML 文档中的每个元素都由一个 XPath 元素节点表示。
例如,在我们下面的示例 XML 中是元素节点。
书
标题
作者
出版商
isbn
价格
XPath 处理指令节点
一个处理指令节点有两个部分,一个名称(由 name() 函数返回)和一个字符串值。
字符串值是名称 <?xml
之后的所有内容,包括空格,但不包括关闭处理指令的 ?>
。
例如:
<?xml version="1.0" encoding="utf-8"?>
XPath 根节点
根节点是包含整个文档的 XPath 节点。
在我们的示例中,根节点包含 <inventory> 元素。
在 XPath 表达式中,根节点用一个斜杠 ('/'
) 指定。
XPath 文本节点
文本节点非常简单。
它们包含来自元素的文本。
如果 XML 文档中的原始文本包含实体或者字符引用,则会在创建 XPath 文本节点之前解析它们。
文本节点是文本,纯粹而简单。
文本节点需要包含尽可能多的文本。
请记住,文本节点的下一个或者上一个节点不能是另一个文本节点。
例如,我们的 XML 片段中的所有值都是文本节点,例如 Snow Crash
和 Neal Stephenson
。