深度解读Python示例说明


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

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

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

  • 对于Python灵活性说明介绍
  • 讲述Python 特性大总结
  • 简介Python版本选择
  • 有关Python代码学习介绍
  • 浅析面向对象的主要Python类

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

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

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

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

相关内容

    暂无相关文章

评论关闭