Python XML解析
短信预约 -IT技能 免费直播动态提醒
Python XML解析
----http://www.w3cschool.cn/python/python-xml.html
Python中使用ElementTree对XML文件进行解析
----http://www.jianshu.com/p/bcef2ff6ffaa
xml文件样例:
<?xml version = '1.0' encoding = 'UTF-8'?>
<ADI>
<Metadata>
<AMS Asset_Name="夜线" Provider="Gehua" Product="MOD" Version_Major="1" Version_Minor="0" Creation_Date="2017-06-16" Provider_ID="Gehua.com" Asset_ID="GEHU8261706160621000" Asset_Class="package"/>
</Metadata>
<Asset>
<Metadata>
<AMS Asset_Name="夜线" Provider="Gehua" Product="MOD" Version_Major="1" Version_Minor="0" Creation_Date="2017-06-16" Provider_ID="Gehua.com" Asset_ID="GEHU8261706160621000" Asset_Class="title"/>
<App_Data App="MOD" Name="title" Value="夜线"/>
<App_Data App="MOD" Name="event_start_time" Value="2017-06-16T06:21:00"/>
<App_Data App="MOD" Name="event_end_time" Value="2017-06-16T07:01:00"/>
<App_Data App="MOD" Name="channel_id" Value="826"/>
<App_Data App="MOD" Name="channel_name" Value="CCTV社会与法"/>
<App_Data App="MOD" Name="event_status" Value="4"/>
<App_Data App="MOD" Name="event_expire_time" Value="2017-06-30T07:01:00"/>
<App_Data App="MOD" Name="titleabbreviation" Value="YX"/>
<App_Data App="MOD" Name="titlecharacterscount" Value="2"/>
<App_Data App="MOD" Name="country_of_origin" Value="中国"/>
<App_Data App="MOD" Name="genre" Value="综合"/>
<App_Data App="MOD" Name="schedule_id" Value="8261706160621000"/>
</Metadata>
</Asset>
</ADI>
遍历根节点可以获得子节点,然后就可以根据需求拿到需要的字段
#!/usr/bin/python
# -*- coding: utf-8 -*-
import xml.etree.ElementTree as ET
tree = ET.parse('D:\test\20172016062039433.xml')
root = tree.getroot()
print('root-tag:',root.tag,',root-attrib:',root.attrib,',root-text:',root.text)
for child in root:
print('child-tag:',child.tag,',child.attrib:',child.attrib,',child.text:',child.text)
for sub in child:
print('sub-tag:',sub.tag,',sub.attrib:',sub.attrib,',sub.text:',sub.text)
for sub1 in sub:
print('sub1-tag:',sub1.tag,',sub1.attrib:',sub1.attrib,',sub1.text:',sub1.text)
animNode = root.find('Metadata')
for animNode1 in animNode:
print(animNode1.tag,animNode1.attrib,animNode1.text)
代码执行结果如下:
('root-tag:', 'ADI', ',root-attrib:', {}, ',root-text:', '\n ')
('child-tag:', 'Metadata', ',child.attrib:', {}, ',child.text:', '\n ')
('sub-tag:', 'AMS', ',sub.attrib:', {'Asset_ID': 'GEHU8261706160621000', 'Product': 'MOD', 'Asset_Class': 'package', 'Version_Major': '1', 'Provider_ID': 'Gehua.com', 'Creation_Date': '2017-06-16', 'Asset_Name': u'\u591c\u7ebf', 'Provider': 'Gehua', 'Version_Minor': '0'}, ',sub.text:', None)
('child-tag:', 'Asset', ',child.attrib:', {}, ',child.text:', '\n ')
('sub-tag:', 'Metadata', ',sub.attrib:', {}, ',sub.text:', '\n ')
('sub1-tag:', 'AMS', ',sub1.attrib:', {'Asset_ID': 'GEHU8261706160621000', 'Product': 'MOD', 'Asset_Class': 'title', 'Version_Major': '1', 'Provider_ID': 'Gehua.com', 'Creation_Date': '2017-06-16', 'Asset_Name': u'\u591c\u7ebf', 'Provider': 'Gehua', 'Version_Minor': '0'}, ',sub1.text:', None)
('sub1-tag:', 'App_Data', ',sub1.attrib:', {'App': 'MOD', 'Name': 'title', 'Value': u'\u591c\u7ebf'}, ',sub1.text:', None)
('sub1-tag:', 'App_Data', ',sub1.attrib:', {'App': 'MOD', 'Name': 'event_start_time', 'Value': '2017-06-16T06:21:00'}, ',sub1.text:', None)
('sub1-tag:', 'App_Data', ',sub1.attrib:', {'App': 'MOD', 'Name': 'event_end_time', 'Value': '2017-06-16T07:01:00'}, ',sub1.text:', None)
('sub1-tag:', 'App_Data', ',sub1.attrib:', {'App': 'MOD', 'Name': 'channel_id', 'Value': '826'}, ',sub1.text:', None)
('sub1-tag:', 'App_Data', ',sub1.attrib:', {'App': 'MOD', 'Name': 'channel_name', 'Value': u'CCTV\u793e\u4f1a\u4e0e\u6cd5'}, ',sub1.text:', None)
('sub1-tag:', 'App_Data', ',sub1.attrib:', {'App': 'MOD', 'Name': 'event_status', 'Value': '4'}, ',sub1.text:', None)
('sub1-tag:', 'App_Data', ',sub1.attrib:', {'App': 'MOD', 'Name': 'event_expire_time', 'Value': '2017-06-30T07:01:00'}, ',sub1.text:', None)
('sub1-tag:', 'App_Data', ',sub1.attrib:', {'App': 'MOD', 'Name': 'titleabbreviation', 'Value': 'YX'}, ',sub1.text:', None)
('sub1-tag:', 'App_Data', ',sub1.attrib:', {'App': 'MOD', 'Name': 'titlecharacterscount', 'Value': '2'}, ',sub1.text:', None)
('sub1-tag:', 'App_Data', ',sub1.attrib:', {'App': 'MOD', 'Name': 'country_of_origin', 'Value': u'\u4e2d\u56fd'}, ',sub1.text:', None)
('sub1-tag:', 'App_Data', ',sub1.attrib:', {'App': 'MOD', 'Name': 'genre', 'Value': u'\u7efc\u5408'}, ',sub1.text:', None)
('sub1-tag:', 'App_Data', ',sub1.attrib:', {'App': 'MOD', 'Name': 'schedule_id', 'Value': '8261706160621000'}, ',sub1.text:', None)
('AMS', {'Asset_ID': 'GEHU8261706160621000', 'Product': 'MOD', 'Asset_Class': 'package', 'Version_Major': '1', 'Provider_ID': 'Gehua.com', 'Creation_Date': '2017-06-16', 'Asset_Name': u'\u591c\u7ebf', 'Provider': 'Gehua', 'Version_Minor': '0'}, None)
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341