Python:XPath与lxml类库(一)

简介: Python:XPath与lxml类库(一)

什么是XML

XML 指可扩展标记语言(EXtensible Markup Language)

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

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

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

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

XML 是 W3C 的推荐标准

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


XML 和 HTML 的区别


数据格式 描述 设计目标

XML Extensible Markup Language (可扩展标记语言) 被设计为传输和存储数据,其焦点是数据的内容。

HTML HyperText Markup Language (超文本标记语言) 显示数据以及如何更好显示数据。

HTML DOM Document Object Model for HTML (文档对象模型) 通过 HTML DOM,可以访问所有的 HTML 元素,连同它们所包含的文本和属性。可以对其中的内容进行修改和删除,同时也可以创建新的元素。

XML文档示例


<?xml version="1.0" encoding="utf-8"?>

<bookstore>

 <book category="cooking">

   <title lang="en">Everyday Italian</title>  

   <author>Giada De Laurentiis</author>  

   <year>2005</year>  

   <price>30.00</price>

 </book>  

 <book category="children">

   <title lang="en">Harry Potter</title>  

   <author>J K. Rowling</author>  

   <year>2005</year>  

   <price>29.99</price>

 </book>  

 <book category="web">

   <title lang="en">XQuery Kick Start</title>  

   <author>James McGovern</author>  

   <author>Per Bothner</author>  

   <author>Kurt Cagle</author>  

   <author>James Linn</author>  

   <author>Vaidyanathan Nagarajan</author>  

   <year>2003</year>  

   <price>49.99</price>

 </book>

 <book category="web" cover="paperback">

   <title lang="en">Learning XML</title>  

   <author>Erik T. Ray</author>  

   <year>2003</year>  

   <price>39.95</price>

 </book>

</bookstore>


HTML DOM 模型示例


HTML DOM 定义了访问和操作 HTML 文档的标准方法,以树结构方式表达 HTML 文档。





XML的节点关系



1. 父(Parent)


每个元素以及属性都有一个父。


下面是一个简单的XML例子中,book 元素是 title、author、year 以及 price 元素的父:


<?xml version="1.0" encoding="utf-8"?>
<book>
  <title>Harry Potter</title>
  <author>J K. Rowling</author>
  <year>2005</year>
  <price>29.99</price>
</book>


2. 子(Children)


元素节点可有零个、一个或多个子。


在下面的例子中,title、author、year 以及 price 元素都是 book 元素的子:


<?xml version="1.0" encoding="utf-8"?>
<book>
  <title>Harry Potter</title>
  <author>J K. Rowling</author>
  <year>2005</year>
  <price>29.99</price>
</book>


3. 同胞(Sibling)


拥有相同的父的节点


在下面的例子中,title、author、year 以及 price 元素都是同胞:


<?xml version="1.0" encoding="utf-8"?>
<book>
  <title>Harry Potter</title>
  <author>J K. Rowling</author>
  <year>2005</year>
  <price>29.99</price>
</book>


4. 先辈(Ancestor)


某节点的父、父的父,等等。


在下面的例子中,title 元素的先辈是 book 元素和 bookstore 元素:


<?xml version="1.0" encoding="utf-8"?>
<bookstore>
<book>
  <title>Harry Potter</title>
  <author>J K. Rowling</author>
  <year>2005</year>
  <price>29.99</price>
</book>
</bookstore>


5. 后代(Descendant)


某个节点的子,子的子,等等。


在下面的例子中,bookstore 的后代是 book、title、author、year 以及 price 元素:


<?xml version="1.0" encoding="utf-8"?>
<bookstore>
<book>
  <title>Harry Potter</title>
  <author>J K. Rowling</author>
  <year>2005</year>
  <price>29.99</price>
</book>
</bookstore>
目录
相关文章
|
4天前
|
数据可视化 数据挖掘 数据处理
python类库详解
python类库详解
9 0
|
3月前
|
数据采集 XML 数据格式
Python爬虫Xpath库详解#4
XPath详解,涉及获取所有节点,子节点,父节点,属性匹配,文本获取,属性获取,按序选择等。【2月更文挑战第13天】
35 0
|
9月前
|
XML 存储 数据处理
Python XML处理初级篇:入门lxml库
在数据处理过程中,XML(可扩展标记语言)常常被用作数据存储和传输。Python的lxml库是一个强大的库,用于解析XML和HTML文档。本文将向您介绍如何使用lxml库来解析和处理XML文档。
|
5月前
|
机器学习/深度学习 NoSQL API
整理了上千个Python类库,简直太酷啦!
整理了上千个Python类库,简直太酷啦!
159 0
|
6月前
|
Python
Python报错: No module named 'lxml'
Python报错: No module named 'lxml'
84 1
|
6月前
|
索引 Python
【Python】数据解析—Xpath解析
【Python】数据解析—Xpath解析
33 0
|
8月前
|
数据采集 JSON API
使用Python和XPath解析动态JSON数据
使用Python和XPath解析动态JSON数据
|
9月前
|
XML 数据格式 Python
深度掌握Python lxml库:高级篇
在Python的世界中,lxml是处理XML和HTML的一款强大且易用的库。在前面的初级和中级篇章中,我们介绍了如何解析、创建、修改XML文档,如何使用XPath查询,以及如何解析大型XML文档。在这篇高级篇章中,我们将继续深入研究lxml库,包括使用XSLT转换,使用XPath函数和命名空间,以及对HTML的高级处理。
|
9月前
|
XML API 数据格式
Python XML处理中级篇:深入探索lxml库
lxml库是Python中处理XML和HTML文档的强大库,提供了丰富的API以进行各种操作。在初级篇中,我们介绍了如何使用lxml库解析、访问和修改XML文档。在这篇中级篇中,我们将更深入地探讨如何使用lxml库,包括如何创建XML文档,如何使用XPath查询,以及如何解析大型XML文档。
|
9月前
|
索引 Python
阿里云ElasticSearch索引元数据迁移-基于Python3原生类库
阿里云ElasticSearch索引元数据迁移-基于Python3原生类库