Python网络爬虫技术与实战
上QQ阅读APP看书,第一时间看更新

3.4.3 XPath语法

XPath使用路径表达式来选取XML文档中的节点或节点集。节点是沿着路径(path)或者步(step)来选取的。

XML文件和HTML文件一样,实际上是一个文本文件,也是由一系列的标记组成。XML文件的结构性内容包括节点关系以及属性内容等。元素是组成XML的最基本的单位,它由开始标记、属性和结束标记组成。我们给定一个XML实例文档,以了解XML的结构组成。


<?xml version="1.0" encoding="ISO-8859-1"?>
<bookstore>
<book>
    <title lang="eng">Harry Potter</title>
    <price>29.99</price>
</book>
<book>
    <title lang="eng">Learning XML</title>
    <price>39.95</price>
</book>
</bookstore>

利用XPath操作上面的XML文档,需要有XML节点或节点集的选取、路径表达式、谓语动词和操作运算符等语法参数,下面我们来介绍XPath面向XML文档的操作。

1.选取节点

XPath使用路径表达式在XML文档中选取节点。表3-4列出了最有用的路径表达式。

表3-4 路径表达式

表3-5列出了一些路径表达式以及表达式的结果。

表3-5 路径表达式实例

2.谓语

谓语(predicate)用来查找某个特定的节点或者包含某个指定值的节点。谓语嵌入在方括号中。表3-6列出了带有谓语的一些路径表达式,以及表达式的结果。

表3-6 路径表达式实例

3.选取未知节点

XPath通配符可用来选取未知的XML元素,如表3-7所示。

表3-7 选取未知节点

表3-8列出了一些路径表达式,以及这些表达式的结果。

表3-8 选取未知节点实例

4.选取若干路径

通过在路径表达式中使用“|”运算符,我们可以选取若干个路径。表3-9列出了一些路径表达式,以及这些表达式的结果。

表3-9 选取若干节点实例

5.XPath运算符

表3-10列出了可用在XPath表达式中的运算符。

表3-10 XPath运算符