我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Python XML解析

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Python XML解析

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

Python XML解析

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Python 解析XML

Python中对两种解析方式的解释:The Python standard library provides a minimal but useful set of interfaces to work with XML.The two m
2023-01-31

Python XML解析

Python XML解析----http://www.w3cschool.cn/python/python-xml.htmlPython中使用ElementTree对XML文件进行解析----http://www.jianshu.com/p
2023-01-31

Python xml解析记录

Python的xml解析方式自带的有3种,xml.dom.*、xml.sax.*以及xml.etree.ElementTree,相对来说,xml.etree.ElementTree最快捷方便。因为自己只使用了xml.etree.Elemen
2023-01-31

Python XML解析之Element

参考网址:http://www.runoob.com/python/python-xml.htmlhttps://docs.python.org/2/library/xml.etree.elementtree.html菜鸟教程提供了基本的X
2023-01-30

Python XML解析之DOM

DOM说明:DOM:Document Object Model APIDOM是一种跨语言的XML解析机制,DOM把整个XML文件或字符串在内存中解析为树型结构方便访问。https://docs.python.org/2/library/xm
2023-01-30

python xml解析实例详解

python xml解析 first.xml 1 fsy 24 2
2022-06-04

Python中怎么解析XML

本篇文章给大家分享的是有关Python中怎么解析XML,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Python解析XML代码示例:< text > < font size="
2023-06-17

Python解析XML字符串

# -*- coding: utf-8 -*-    import xml.sax  import xml.sax.handler    class XMLHandler(xml.sax.handler.ContentHandler):  
2023-01-31

Python中如何解析XML

Python中如何解析XML,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。什么是XML?XML是可扩展标记语言(Extensible Markup Langua
2023-06-17

Python如何解析 XML 文档

本文详解Python解析XML文档的方法,包括ElementTree、SAX、lxml和minidom。选择解析器取决于特定需求,如文档大小、自定义要求和高级功能(如XPath)。ElementTree简单易用,适合中小文档;SAX高效,适用于大型文档;lxml功能强大,支持高级功能;minidom提供DOM树直接访问。
Python如何解析 XML 文档
2024-04-02

Python解析XML实例分享

本篇内容主要讲解“Python解析XML实例分享”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python解析XML实例分享”吧!Python 对 XML 的解析常见的 XML 编程接口有 DO
2023-06-02

[转载] python 解析xml 文件

环境python:3.4.4准备xml文件首先新建一个xml文件,countries.xml。内容是在python官网上看到的。 2023-01-30

python处理XML解析(读取)

# -*- coding:utf-8 -*-__author__ = 'magicpwn'from xml.etree import ElementTree# 向parse()传递一个打开的文件句柄 ,读取解析并返回一个Elementtre
2023-01-31

xml解析

XML 指可扩展标记语言(eXtensible Markup Language)。XML 被设计用来传输和存储数据。而HTML被用来显示数据。XML是一套定义语义标记的规则,这些标记将文档分成许多部件并对这些部件加以标识。它也是元标记语言,
2023-01-30

Python如何释放 XML 解析器

在Python中,释放XML解析器至关重要,以释放内存并防止泄漏。可以通过使用ElementTree库中的clear()方法、iterparse()方法或parse()函数的free()方法来实现。在Python3.8及以上版本中,使用xml.etree.ElementPath库代替ElementTree。释放XML解析器是保持应用程序运行高效的关键步骤。
Python如何释放 XML 解析器
2024-04-02

Python如何创建 XML 解析器

本指南介绍了在Python中创建XML解析器的各种方法,包括DOM解析器、SAX解析器、lxml库和ElementTree模块。每种方法的优点和缺点都有详细说明,以便读者根据其特定需求选择最佳解析器。DOM解析器提供对文档结构的全面访问,而SAX解析器更快、更节内存。lxml结合了DOM和SAX的优点,ElementTree提供了速度和内存效率之间的平衡。
Python如何创建 XML 解析器
2024-04-02

python之解析最简单的xml

1、person.xm文件如下2、用xml.etree.ElementTree解析person.xml的实现3、效果如下4、总结python里面的list = []相当于java里面的list,然后可以改变其中的值。
2023-01-31
2024-04-02

用python解析xml的几种方法

Xml:1. 标签成对出现2. 区分大小写3. 标签要正确嵌套4.开始部分:5.只能有一个根节点6.节点可以有属性DTD:约束XML文件的节点Xml解析:1. do
2023-01-31

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录