python中Xpath的语法分析

  介绍

这篇文章主要介绍了python中Xpath的语法分析,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。

一、XMl简介

(一)什么是XMl

<李>

XMl指可扩展标记语言(可扩展)

<李>

XMl是一种标记语言,很类似HTML。

<李>

XMl的设计宗旨是传输数据,而非显示数据。

<李>

XMl的标签需要我们自行定义。

<李>

XMl被设计为具有自我描述性。

<李>

XMl是W3C的推荐标准。

W3School官方文档:http://www.w3school.com.cn/xml/index.asp

(二)XMl和HTML的区别

他们两者都是用于操作数据或者结构数据,在结构上大致相同的,但他们在本质上却存在着明显的区别。

数据格式描述设计目标XMLExtensible标记语言(可扩展标记语言)被设计为传输和存储数据,其焦点是数据的内容.HTMLHyperText标记语言(超文本标记语言)显示数据以及如何更好显示数据. HTML DOMDocument对象模型对HTML(超文本标文档对象模型)通过HTML DOM,可以访问所有的HTML元素,连同它们所包含的文本和属性。可以对其中的内容进行修改和删除,同时也可以创建新的元素。

(三)XMl的节点关系

& lt; ? XML  version=& # 39; 1.0 & # 39;,编码=啊皍tf-8> & lt; book 类别=癱ooking"比;   & lt; title  lang=癳n"祝辞Harry  Potter   & lt; author> J  K.Rowling</author>   & lt; year> 2005 & lt;/year>   & lt; price> 29.00 & lt;/price> & lt;/book>
1。父(父)

每个元素以及属性都有一个父上。面是一个简单的XML例子中,书元素是标题、作者、年份以及价格元素的父

2。子(孩子)

元素节点可有零个、一个或多个子元素。在上面的例子中,标题、作者、年份以及价格元素都是书元素的子元素

3。同胞(兄弟姐妹)

拥有相同的父的节点。在上面的例子中,标题,作者,年以及价格元素都是同胞

4。先辈(祖先)

某节点的父,父的父,等等。在上面的例子中,标题元素的先辈是书元素和书店元素

5。后代(后代)

某个节点的子,子的子等等。在上面的例子中,书店的后代是书,标题、作者、年份以及价格元素:

二,XPATH

XPATH (XML路径语言)是一门在XML文档中查找信息的语言,可用来在XML文档中对元素和属性进行遍历。

(一)选取节点

XPATH使用路径表达式来选取XML文档中的节点或者节点集。这些路径表达式和我们在常规的电脑文件系统中看到的表达式非常相似。下面列出了最常用的路径表达式:

表达式描述nodename选取此节点的所有子节点。/从节点选取。//从匹配选择的当前节点选择文档中的节点,而不考虑他们的位置,选取当前节点……选取当前节点的父节点.@选取属性。

在下面的表格中,我们已列出了一些路径表达式以及表达式的结果:

路径表达式描述书店选取书店元素的所有子节点/书店选取根元素书店。代表元素的绝对路径.bookstore/书选取属于书店的子元素的所有书元素。//书选取所书有子元素,而不管它们在文档中的位置书店//书选择属于booksore元素的后代所有的书元素,而不管他们位于书店之下的什么位置。//@lang选取名为朗的所有属性。text()取标签当中的值

(二)谓语(谓词)

谓语用来查找某个特定的节点或者包含某个指定的值的节点,被嵌在方括号中。在下面的表格中,我们列出了带有谓语的一些路径表达式,以及表达式的结果:

路径表达式描述//book [l]书店选取属于书店子元素的第一个书元素。/书店/book[去年()]选取属于书店子元素的最后一个书元素。/书店书去年()[1]选取属于书店子元素的倒数第二个书元素。/书店/book[位置()& lt; 2)选最前面的一个属于书店元素的子元素的书元素。//标题(@lang)选取所有属性名为朗的属性的标题元素。//titlel@lang=' eng ']选取所有tltle元素,且这些元素有属性值为eng的朗属性。

(三)选取未知节点

XPath通配符可用来选取未知的XML元素。

通配符描述*匹配任何元素节点.@ *匹配任何属性节点。

在下面的表格中,我们列出了一些路径表达式,以及这些表达式的结果:

路径表达式描述/书店/*选取书店元素的所有子元素//*选取文档中的所有元素。//标题(@ *)选取所有带有属性的标题元素。

(四)选取若干路径

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

python中Xpath的语法分析