当前位置:  编程语言>python

python下xml解析库lxml最新版下载安装以及代码示例

 
    发布时间:2014-10-10  


    本文导语:  lxml 是一种使用 Python 编写的库,可以迅速、灵活地处理 XML。它支持 XML Path Language (XPath) 和 Extensible Stylesheet Language Transformation (XSLT),并且实现了常见的 ElementTree API。python下xml解析库lxml下载地址: lxml下载&...

    lxml 是一种使用 Python 编写的库,可以迅速、灵活地处理 XML。它支持 XML Path Language (XPath) 和 Extensible Stylesheet Language Transformation (XSLT),并且实现了常见的 ElementTree API


python下xml解析库lxml下载地址:    lxml下载  

python下xml解析库lxml安装详细介绍:  http://lxml.de/installation.html



python下xml解析库lxml用法举例:

from lxml import etree
doc = etree.parse('content-sample.xml')

解析html并建立dom

>>> import lxml.etree as etree
>>> html = '<html><body id="1">abc<div>123</div>def<div>456</div>ghi</body></html>'
>>> dom = etree.fromstring(html)
>>> etree.tostring(dom)
'<html><body id="1">abc<div>123</div>def<div>456</div>ghi</body></html>'


如果用beautifulsoup解析器,则

>>> import lxml.html.soupparser as soupparser
>>> dom = soupparser.fromstring(html)
>>> etree.tostring(dom)
'<html><body id="1">abc<div>123</div>def<div>456</div>ghi</body></html>'



但是我强烈建议使用soupparser,因为其处理不规范的html的能力etree强太多。 


 按照Dom访问Element

子元素长度

>>> len(dom)
1

访问子元素:

>>> dom[0].tag
'body'

循环访问:

>>> for child in dom:
...     print child.tag
... 
body

查看节点索引

>>>body = dom[0]
>>> dom.index(body)
0

字节点获取父节点

>>> body.getparent().tag
'html'

 访问所有子节点


>>> for ele in dom.iter():
...     print ele.tag
... 
html
body
div
div

 访问节点属性

>>> body.get('id')
'1'

也可以这样

>>> attrs = body.attrib
>>> attrs.get('id')
'1'

访问Element的内容


>>> body.text
'abc'
>>> body.tail


text只是从本节点开始到第一个字节点结束;tail是从最后一个字节结束到本节点未知。


访问本节点所有文本信息

>>> body.xpath('text()')
['abc', 'def', 'ghi']

 

访问本节点和子节点所有文本信息

>>> body.xpath('//text()')
['abc', '123', 'def', '456', 'ghi']

貌似返回本文档中所有文字信息

body.text_content()返回本节点所有文本信息。 


Xpath的支持


所有的div元素

>>> for ele in dom.xpath('//div'):
...     print ele.tag
... 
div
div

id=“1”的元素

>>> dom.xpath('//*[@id="1"]')[0].tag
'body'


body下的第1个div

>>> dom.xpath('body/div[1]')[0].tag
'div'


相关文章推荐:
  • 基于Python的Html/xml解析库Beautiful Soup 4.2.1发布
  • python实现dnspod自动更新dns解析的方法
  • Python下Html/xml解析库Beautiful Soup快速入门教程
  • python解析xml文件实例分享
  • python对XML的解析方法(SAX,DOM,ElementTree)介绍
  • python解析json实例方法
  • Python中lambda的用法及其与def的区别解析
  • python中enumerate的用法实例解析
  • Python 解析XML文件
  • python使用scrapy解析js示例
  • 静态的Python解析器 StaticPython
  • python生成日历实例解析
  • python解析模块(ConfigParser)使用方法
  • python解析文件示例
  • Python struct模块解析
  • python 中的列表解析和生成表达式
  • python解析中国天气网的天气数据
  • python 解析XML python模块xml.dom解析xml实例代码
  • python抓取某汽车网数据解析html存入excel示例
  • python实现AutoResetEvent类的阻塞模式方法解析
  • python解析发往本机的数据包示例 (解析数据包)


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3