python如何处理xml,遇到非法格式的xml怎么办
Admin 2022-10-08 群英技术资讯 1034 次浏览
这篇文章给大家介绍了“python如何处理xml,遇到非法格式的xml怎么办”的相关知识,讲解详细,步骤过程清晰,有一定的借鉴学习价值,因此分享给大家做个参考,感兴趣的朋友接下来一起跟随小编看看吧。参照官方文档,创建country_data.xml测试文档,内容如下:
<?xml version="1.0"?>
<data>
<country name="Liechtenstein">
<rank>1</rank>
<year>2008</year>
<gdppc>141100</gdppc>
<neighbor name="Austria" direction="E"/>
<neighbor name="Switzerland" direction="W"/>
</country>
<country name="Singapore">
<rank>4</rank>
<year>2011</year>
<gdppc>59900</gdppc>
<neighbor name="Malaysia" direction="N"/>
</country>
<country name="Panama">
<rank>68</rank>
<year>2011</year>
<gdppc>13600</gdppc>
<neighbor name="Costa Rica" direction="W"/>
<neighbor name="Colombia" direction="E"/>
</country>
</data>
使用如下代码,将数据读出,打印
from xml.etree.ElementTree
data = ElementTree.ElementTree(file='country_data.xml')
country_list = data.findall('country') #找到所有名为‘country'的tag,返回一个Element对象列表。
for country in country_list:
name = country.attrib.get('name', '')
print name, ' ',
for item in country:
if item.tag == 'neighbor':
name = item.attrib.get('name', '')
direction = item.attrib.get('direction', '')
print '{0} ({1})'.format(name, direction), ' ',
else:
print item.text, ' ',
print ''
其中
data = ElementTree.ElementTree(file='country_data.xml')
获得一个ElementTree对象,也可以使用
tree = ElementTree.parse('country_data.xml')
| elem.tag | 这个Element对象的名字(tag) |
| elem.text | 文档内容 |
| elem.attrib | 属性值字典 |
| elem.tail | 与属性一起存储的其他数据 |
elem[n] 返回elem的第n个子元素
elem[n] = new_elem 将elem的第n个子元素更改为不同的元素new_elem
del elem[n] 删除子元素
len(elem) 子元素的数量
elem.find(path)
elem.getchildren() 按文档顺序返回所有子元素
elem.items()将所有元素的属性值以(name, value)对列表形式返回
bad.xml为空文档时,内容如下:
<?xml version="1.0"?>
执行如下python代码,遇到xml.parser.expat.ExpatError异常:
import xml.etree.ElementTree as ET
ET.parse('bad.xml')
xml.parsers.expat.ExpatError: no element found: line 3, column 0
bad.xml中找不到对应结束标记符时,内容如下:
<?xml version="1.0"?> <note> </Note>
因为区分大小写,所以</Note> 不能作为<note>的结束标记。
xml.parsers.expat.ExpatError: mismatched tag: line 3, column 2
bad.xml中属性值未包含在双引号(")之中时,遇到如下异常:
<?xml version="1.0"?> <note id=hello> </note>
bad.xml中非法符号,在"if salary < 1000 then"语句的‘<',如下:
<?xml version="1.0"?> <note id="hello"> if salary < 1000 then </note
xml.parsers.expat.ExpatError: not well-formed (invalid token): line 2, column 9
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
Python邮件处理怎样实现?对于邮件处理是比较常见的需求,下面小编就给大家介绍一下使用Python实现邮件处理的操作,下面示例具有一定的参考价值,感谢的朋友可以参考了解看看
python对属性权限的控制是通过属性名来实现的,下面这篇文章主要给大家介绍了关于Python如何获取模块中类以及类的属性方法信息的相关资料,需要的朋友可以参考下
本文主要介绍的python排序算法的实现,下本有冒泡排序、选择排序、插入排序、快速排序这四种排序的算法实现步骤以及实现的介绍,和四种算法实现的比较,具有一定的参考价值。下面一起跟随小编看看吧。
这篇文章主要介绍了python numpy库,numpy是一个开源的python科学计算扩展库,主要用来处理任意维度数组和矩阵。相同的任务,使用numpy比直接用python的基本数据结构更加简单高效,下面一起进入文章了解更多详细内容吧
这篇文章主要介绍了通过使用OpenCV进行基于深度学习的对象检测以及使用OpenCV检测视频,文中的示例代码讲解详细,需要的可以参考一下
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008