Python3解析xml文件

一段xml文件内容如下 

<collection shelf="New Arrivals">
<movie title="Enemy Behind">
   <type>War, Thriller</type>
   <format>DVD</format>
   <year>2003</year>
   <rating>PG</rating>
   <stars>10</stars>
   <description>Talk about a US-Japan war</description>
</movie>
</collection>

首先了解一下xml的结构,xml类似html

<collection shelf="New Arrivals"> </collection>这个是xml的起始标签,如果将xml的内容用一棵树来表示,那么这个起始标签就相当于是一棵树的根(想象一下二叉树的结构) 也可以写成<collection>,前者相比于后者多了一个属性(attrib),

<movie title="Enemy Behind"> </movie>这个是二级子标签,它的上一级标签是<collection shelf="New Arrivals">,也同样有属性

 <type>War, Thriller</type>这个是三级子标签,依次类推,不同的是三级子标签中没有属性(attrib),<type>文本(text)</type>,在标签对内的是文本(text),大概的结构就是这样

接下来用python对xml文件进行解析,将以上的xml代码段放到一个名为movie.xml的文件中并与python文件放在同一目录

from xml.etree import ElementTree as ET 

tree = ET.parse("movies.xml") #打开movies.xml并以树结构返回给tree
root = tree.getroot()# 获取xml文件的根节点(最顶层标签)
print(root.tag) #打印最顶层标签的标签
print("------")

for node in root.iter('collection'): #迭代最顶层标签里的所有子标签
    print(node.attrib)# 打印标签的属性
    print(dir(node))#打印标签的结构
    for i in node: #迭代子标签
        print(i.tag, i.text, i.attrib) #打印子标签的标签,文本内容,标签属性
        for j in i:#迭代子标签的子标签
            print(j.tag, j.text, j.attrib)#打印子标签的子标签的标签,内容,属性
                 # for k in j:#如果还有子标签可以继续迭代
                 #       do something

参考自:https://www.cnblogs.com/augus007/articles/6946001.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值