[XPath]XPath与lxml(一)XPath术语-创新互联
XPath 是一门在 XML 文档中查找信息的语言,对 XPath 的理解是很多高级 XML 应用的基础,XPath 在 XML 中通过元素和属性进行导航。
创新互联建站10多年企业网站设计服务;为您提供网站建设,网站制作,网页设计及高端网站定制服务,企业网站设计及推广,对地磅秤等多个行业拥有丰富的网站推广经验的网站建设公司。什么是 lxml ?lxml 是一个用来处理 XML 的第三方 Python 库,它在底层封装了用 C 语言编写的 libxml2 和 libxslt,并以简单强大的 Python API,兼容并加强了著名的 ElementTree API。
XPath 术语在 XPath 语境中,XML 文档被视作节点树,节点树的根节点也被称作文档节点。
XPath 将节点树中的节点(Node)分为七类:元素(Element),属性(Attribute),文本(Text),命名空间(Namespace),处理指令(Processing-instruction),注释(Comment)和文档节点(Document nodes)。
请看一下 XML 文档:
Harry PotterJ K. Rowling
2005 29.99
以上 XML 文档中:
(这是一个“根”)
J K. Rowling (这是一个“元素”)
lang="en" (这是一个“属性”)
换个视角理解它:
- bookstore (我是根)
- book (我是元素)
- title (我是元素)
- attributes (我是属性)
- lang = en (楼上其实是属性容器,我才是属性)
- text = Harry Potter (我是文本)
- author (我是元素)
- text = J K. Rowling (我是文本)
- year (我是元素)
- text = 2005 (我是文本)
- price (我是元素)
- text = 29.99 (我是文本)
以上就是节点树的示意图,看起来是不是很像 YAML 格式,每一行都表示一个节点,缩进表示各行之间的关系。其中无父或无子的节点被称为原子值(Atomic value)也称基本值,以上等号后面的都是原子值。节点和基本值都统称为项目(Item)。
节点之间的关系 父(Parent)每个元素都肯定有一个父节点,最顶层的元素父亲是根节点。同理每个属性必然有一个父,它们的父是元素。
上文 XML 文档中,根 bookstore 是元素 book 的父节点,book 是元素 title, author, year, price 的父节点,title 是 lang 的父节点。
子(Children)元素可以有零或多个子。
上文 XML 文档中,title, author, year, price 是 book 的子节点。
同胞(Sibling)父节点相同的节点之间互为同胞,也称彼此的兄弟节点。
上文 XML 文档中,title, author, year, price 彼此互为同胞。
先辈(Ancestor)某节点的父节点、父的父,以此类推一直追溯至根节点之间所有节点。
上文 XML 文档中,title, author, year, price 的先辈就是 book, bookstore。
后代(Descendant)某节点的子节点、子的子,以此类推至最后一个子节点之间所有节点。
上文 XML 文档中,bookstore 的后代就是 title, author, year, price 。
分享名称:[XPath]XPath与lxml(一)XPath术语-创新互联
文章链接:http://azwzsj.com/article/epoog.html