etree解析xml_python中api《lxml.etree》的使用

6754722832058c3a22940399f965fc06.png

这是一个关于使用lxml.etree进行XML处理的教程。它简要概述了ElementTree API的主要概念,以及一些简单的增强功能,使您作为程序员的生活更轻松。

关注小编后续次序更新

  • 本文章主要介绍的是,ElementTree类
  • 从字符串和文件中解析
  • fromstring()函数
  • XML()函数
  • parse()函数
  • 解析器对象
  • 增量解析

ElementTree类

一个ElementTree的主要文档包裹一个树根节点。它提供了两种序列化和一般文档处理方法。

>>> root = etree 。XML ('''  ...  ... ]> ...  ... &tasty;  ...  root> ... '''' )>>> tree = etree 。ElementTree的(根)>>> 打印(树。DOCINFO 。xml_version )1.0 >>> 打印(树。DOCINFO 。DOCTYPE )>>> 树。docinfo 。public_id = ' - // W3C // DTD XHTML 1.0 Transitional // EN' >>> 树。docinfo 。system_url = '文件://local.dtd' >>> 打印(树。DOCINFO 。DOCTYPE )

一个ElementTree的也是你得到什么,当你调用 解析()函数来解析文件或类似文件的对象(见下面的分析部)。

其中一个重要区别是ElementTree类序列化为完整文档,而不是单个元素。这包括顶级处理说明和注释,以及文档中的DOCTYPE和其他DTD内容:

>>> 打印(etree 。的toString (树)) #LXML 1.3.4和后 ]>    parsnips   root>

在原始的xml.etree.ElementTree实现中,在lxml中最高为1.3.3,输出看起来与仅序列化根元素时的输出相同:

>>> 打印(etree 。的toString (树。getroot ()))  防风草 根>

此序列化行为在lxml 1.3.4中已更改。之前,树被序列化而没有DTD内容,这使得lxml在输入 - 输出周期中丢失了DTD信息。

从字符串和文件中解析

lxml.etree支持以多种方式从所有重要来源解析XML,即字符串,文件,URL(http / ftp)和类文件对象。主要的解析函数是fromstring()和 parse(),它们都以source作为第一个参数调用。默认情况下,它们使用标准解析器,但您始终可以将不同的解析器作为第二个参数传递。

fromstring()函数

该fromstring()函数解析字符串的最简单的方法:

>>> some_xml_data = “ data  root>”>>> root = etree 。fromstring (some_xml_data )>>> 打印(根。标签)根>>> etree 。tostring (root )b' data  root>'

XML()函数

的XML()函数的行为类似于fromstring()函数

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值