深度解读Python示例说明

Python能够简单而有效地实现面向对象编程,特别适用于快速应用程序开发,也可以用来开发大规模的重要的商业应用。Python是一个理想的脚本语言,所以深受开发人员的大力支持,下面对Python示例进行解说。

成都创新互联公司是工信部颁发资质IDC服务器商,为用户提供优质的资阳托管服务器服务

测试结果表明, REXML xml.minidom样消耗量资源:解析 Hamlet.xml  10 秒,占 14 MB 存;解析 Weblog.xml  190 秒,占 150 MB 存。显然,编程语言选择通常优先于库比较。。

ElementTree 个优点于能够被循环运行。这指,您以读入个 XML 实例,修改数据结构使非常类似于本机风格,然调 .write() 进行重新序列化得格式良好 XML。当然,DOM 能做这点,但 gnosis.xml.objectify不行。#t#

gnosis.xml.objectify构造个定制输出函数于生成 XML 不 那么困难 - 但这不能自动进行。使 ElementTree 以及 ElementTree 实例 .write() ,通过便利函数 elementtree.ElementTree.dump() 以序列化单独 Element 实例。这让您以从单独象节点 - 其包括 XML 实例根节点 - 编 XML 片段。

提出个简单任务比较 ElementTree  gnosis.xml.objectify  API。于基准测试型文档 weblog.xml 包含约 8,500 个 元素,每个元素都含有相同子字段集合 - 这个面向数据 XML 文档典型布局。

处理该文时,任务能从每个 entry 收集些字段,但这只其某些字段有特定值(或范围,或匹配部分容)。当然,如果您确实只想运行这个任务。使个流 API(如 SAX)以避免存整个文档建模 - 但这里假定该任务应程序型数据结构运行任务。个 元素能像这样:

 
 
 
  1. from elementtree
  2.     import ElementTree
  3. weblog = ElementTree.parse(
  4.     'weblog.xml').getroot()
  5. interesting = [entry
  6.     for entry
  7.     in weblog.findall(
  8.     'entry')
  9.   
  10.     if entry.find(
  11.     'host').text==
  12.     '209.202.148.31'
  13.     and
  14.        entry.find(
  15.     'statusCode').text==
  16.     '200']
  17.     for e
  18.     in interesting:

注意面不同处。 Python子元素节点直接作节点属性进行连接(每个节点都个根据标记名命名定制类)。另方面, ElementTree 使 Element 类查找子节点。 .findall() 返回所有匹配节点列表; .find() 则仅返回***匹配节点;

返回节点文本容。如果您只想 gnosis.xml.objectify 子元素***匹配,只其建立索引即 - 例如, node.tag[0] 。但如果这样子元素只有个,那么无需建立显式索引,您以引用。

但 Python示例,其实您并不 需显式查找所有 元素;迭代时 Element 实例行方式类似于列表。这里注意点,不管子节点有何标记, 所有子节点都进行迭代。相比, gnosis.xml.objectify 节点没有置遍历所有子元素。尽管如此,构造个行 children() 函数还挺简单(发行版包含该函数)。

本文标题:深度解读Python示例说明
文章来源:http://www.shufengxianlan.com/qtweb/news23/256673.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联