Day60:用Python解析XML文件(xml.etree.ElementTree)

liftword1个月前 (04-15)技术文章21

XML(eXtensible Markup Language)指可扩展标记语言,被设计用来传输和存储数据。它是web发展到一定阶段的必然产物,既具有SGML的核心特征,又有着HTML的简单特性,还具有明确和结构良好等许多新的特性。

文件country.xml

   
   
     
      4 
      2011 
      59900 
       
     
     
      68 
      2011 
      13600 
       
       
     
   

xml.etree.ElementTree

ElementTree生来就是为了处理XML,它在Python标准库中有两种实现:一种是纯Python实现的,如xml.etree.ElementTree,另一种是速度快一点的xml.etree.cElementTree。注意:尽量使用C语言实现的那种,因为它速度更快,而且消耗的内存更少。在CODE上查看代码片派生到我的代码片

try:
  import xml.etree.cElementTree as ET
except ImportError:
  import xml.etree.ElementTree as ET

这是一个让Python不同的库使用相同API的一个比较常用的办法,而从Python 3.3开始ElementTree模块会自动寻找可用的C库来加快速度,所以只需要import xml.etree.ElementTree就可以了。

代码与结果

  #!/usr/bin/evn python 
  #coding:utf-8 
   
  try: 
    import xml.etree.cElementTree as ET 
  except ImportError: 
    import xml.etree.ElementTree as ET 
  import sys 
   
  try: 
    tree = ET.parse("country.xml")     #打开xml文档 
    #root = ET.fromstring(country_string) #从字符串传递xml 
    root = tree.getroot()         #获得root节点  
  except Exception, e: 
    print "Error:cannot parse file:country.xml." 
    sys.exit(1) 
  print root.tag, "---", root.attrib  
  for child in root: 
    print child.tag, "---", child.attrib 
   
  print "*"*10 
  print root[0][1].text   #通过下标访问 
  print root[0].tag, root[0].text 
  print "*"*10 
   
  for country in root.findall('country'): #找到root节点下的所有country节点 
    rank = country.find('rank').text   #子节点下节点rank的值 
    name = country.get('name')      #子节点下属性name的值 
    print name, rank 
      
  #修改xml文件 
  for country in root.findall('country'): 
    rank = int(country.find('rank').text) 
    if rank > 50: 
      root.remove(country) 
   
  tree.write('output.xml') 

参考:
https://www.jb51.net/article/63780.htm

相关文章

Python 解析 XML

1 简介XML 全称 Extensible Markup Language,中文译为可扩展标记语言。XML 之前有两个先行者:SGML 和 HTML,率先登场的是 SGML, 尽管它功能强大,但文档结...

Python 读写XML文件

在Python中,可以使用内置的xml.etree.ElementTree模块来读取和写入XML文件。这个模块提供了一种简单而有效的方式来解析和操作XML文档。下面是使用xml.etree.Eleme...

深入解析:Python中的XML处理技巧与实践

解析XML文件是Python编程中的一项重要技能,特别是在处理配置文件、数据交换格式或web服务响应时。Python提供了多种库来实现这一功能,其中xml.etree.ElementTree和lxml...

python编程:配置文件xml的读取写入

XML,全称为ExtentsibleMarkup Language,即可扩展标记语言,是用来定义其它语言的一种元语言,使用自定义的标签对文档内容进行描述。被设计用来传输和存储数据。XML和HTML类似...

Python和XML

XML 是一种可移植的开源语言,它允许程序员开发可由其他应用程序读取的应用程序,而不管操作系统和/或开发语言如何。什么是 XML?可扩展标记语言 (XML) 是一种与 HTML 或 SGML 非常相似...

20.2 PyQt5-【XML操作】-QXmlStreamWriter

1.QXmlStreamWriter简介在 PyQt5 中,QXmlStreamWriter用于逐步生成 XML 数据。支持以流的形式写入XML,适合处理较大或复杂的XML文件2.QXmlStream...