XPath 节点


XPath 节点技术文档

1. 什么是 XPath 节点?

XPath 节点是 XML 文档中的元素、属性、文本或命名空间的基本单元。每个节点在 XML 中拥有唯一的标识符。通过 XPath 表达式可以选择并操作这些节点,从而达到定位节点、筛选节点以及提取节点信息的目的。

2. XPath 节点分类

XPath 节点可分为以下三类:

2.1.元素节点

元素节点是指 XML 文档中拥有标签和内容的节点,也就是 DOM 中的 element 节点。例如下面的 XML 文档中的 <book> 就是一个元素节点:

<bookstore>
  <book>
    <title>Harry Potter</title>
    <author>J.K. Rowling</author>
    <price>29.99</price>
  </book>
</bookstore>

2.2.属性节点

属性节点是指 XML 文档中的属性,它们是元素节点的补充信息。例如下面的 XML 文档中,<book> 元素有三个属性:idlangedition,这些属性就是属性节点。

<bookstore>
  <book id="101" lang="en" edition="1st">
    <title>Harry Potter</title>
    <author>J.K. Rowling</author>
    <price>29.99</price>
  </book>
</bookstore>

2.3.文本节点

文本节点是指 XML 文档中的内容,它们是元素节点的子节点。例如下面的 XML 文档中,<title><author><price> 都是文本节点。

<bookstore>
  <book id="101" lang="en" edition="1st">
    <title>Harry Potter</title>
    <author>J.K. Rowling</author>
    <price>29.99</price>
  </book>
</bookstore>

3. 节点选择器

XPath 提供了一系列的节点选择器,可以根据节点类型、节点名称、节点关系以及节点特性进行节点选择。以下是一些常用的节点选择器:

3.1.选择所有节点

XPath 中使用 * 表示选择所有节点。例如,/bookstore/* 表示选择 <book> 元素节点。

/bookstore/*

3.2.选择当前节点

XPath 中使用 . 表示选择当前节点。例如,/bookstore/book/author/.. 表示选择 <author> 的父节点,也就是 <book>

/bookstore/book/author/..

3.3.按名称选择节点

XPath 中使用节点名称来选择节点。例如,//book 表示选择文档中所有 <book> 元素节点。

//book

3.4.按位置选择节点

XPath 中使用位置来选择节点。例如,(//book)[1] 表示选择文档中第一个 <book> 元素节点。

(//book)[1]

3.5.按特性选择节点

XPath 中使用节点特性来选择节点。例如,/bookstore/book[@lang="en"] 表示选择所有语言属性为 “en” 的 <book> 元素节点。

/bookstore/book[@lang="en"]

4. 总结

XPath 节点是 XML 文档中的基本单元,包括元素节点、属性节点和文本节点三种类型。XPath 提供了一系列的节点选择器,可以根据不同的节点信息进行选择,常用的节点选择器包括选择所有节点、选择当前节点、按名称选择节点、按位置选择节点和按特性选择节点。掌握这些知识可以更好地操作 XML 文档,并以此为基础掌握更高级的 XML 技术。