深度解读Python示例说明

开发 后端
在向大家详细介绍Python之前,首先让大家了解下XX,然后全面介绍Python,还是比较常用的,于是我研究了一下Python,在这里拿出来和大家分享一下,下面进行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不行。#t#

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() 函数还挺简单(发行版包含该函数)。

责任编辑:chenqingxiang 来源: 互联网周刊
相关推荐

2010-01-05 17:52:34

JSON形式

2010-03-05 10:47:05

Python futu

2010-02-22 13:53:22

Python 中文乱码

2010-02-03 15:17:58

Python 源文件

2010-02-23 10:50:11

Python 测试框架

2010-02-02 15:37:11

2010-03-03 13:32:08

Python压缩文件

2013-12-19 13:51:12

Android ApiAndroid开发Android SDK

2010-02-01 11:22:09

C++虚函数

2013-12-19 13:40:44

Android ApiAndroid开发Android SDK

2017-07-10 11:40:52

HP Helion匠心

2010-02-24 11:19:00

Python主线程

2010-03-02 14:41:00

WCF行为控制

2010-02-07 09:30:39

Android 程序

2013-07-24 14:06:48

2012-03-05 13:11:57

上网行为管理百卓网络

2011-11-16 15:54:38

2011-05-04 14:14:10

偏光式3D技术RealD 3D

2017-03-07 13:14:04

深度学习

2010-02-04 16:07:39

C++回调函数
点赞
收藏

51CTO技术栈公众号