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>
目录
相关文章
|
3月前
|
XML 前端开发 数据格式
三分钟搞定 Python XPath 语法
XPath(XML Path Language)是一种用于在 XML 文档中查找信息的语言。它基于树状结构的 XML 文档,可以通过路径表达式来选取节点或节点集。也常常用来解析 HTML。 如果你是一个前端,对用路径获取元素可能陌生又熟悉。陌生是很多的路径,熟悉的路径上又有熟悉的属性和方法。下面我们就来探究一下 XPath 的魅力。
|
1月前
|
数据采集 XML 数据格式
Python爬虫--xpath
Python爬虫--xpath
|
3月前
|
SQL 关系型数据库 API
Python 开发环境的准备以及一些常用类库模块的安装
在学习和开发Python的时候,第一步的工作就是先准备好开发环境,包括相关常用的插件,以及一些辅助工具,这样我们在后续的开发工作中,才能做到事半功倍。下面介绍一些Python 开发环境的准备以及一些常用类库模块的安装和使用的经验总结,供大家参考了解。
|
4月前
|
数据采集 XML API
Python 爬虫数据抓取(10):LXML
Python 爬虫数据抓取(10):LXML
73 1
|
3月前
|
Python
【Python 3】解决FeatureNotFound: Couldn‘t find a tree builder with the features you requested: lxml.
文章讨论了在使用Python的BeautifulSoup库时遇到的"Couldn't find a tree builder with"错误,并提供了解决方案。
134 0
|
5月前
|
XML 数据库 数据格式
Python网络数据抓取(9):XPath
Python网络数据抓取(9):XPath
33 0
|
4月前
|
XML API 数据格式
`lxml`是一个功能强大的Python库
`lxml`是一个功能强大的Python库
|
5月前
|
XML 数据格式 Python
Python使用xpath对解析内容进行数据提取
在前面的文章当中,已经教大家如何去获取我们需要的数据原文内容,今天就介绍一个用于提取所需数据的方法之一xpath。在后续会讲解bs4(beautifulsoup),re正则表达式。
|
5月前
|
XML 数据格式 Python
Python使用xpath对解析内容进行数据提取
今天就介绍一个用于提取所需数据的方法之一xpath。在后续会讲解bs4(beautifulsoup),re正则表达式。
|
6月前
|
数据可视化 数据挖掘 数据处理
python类库详解
python类库详解
42 0
下一篇
无影云桌面