python修改xml标签的值_Python处理xml--Apple的学习笔记

一 xml数据结构

小明

18

上述就是一个简单的xml数据,这里有几个概念,包括:

根元素

子元素 …

标签 带<>都是标签是开始标签,是结束标签

属性 开始标签中有其它信息的是属性如data标签中的info

文本 被开始标签和结束标签包含的是文本,如小明

二 入门实验代码

#try: #采用底层为c的库,速度快,内存占用小

import xml.etree.cElementTree as ET

#except ImportError:

#import xml.etree.ElementTree as ET

#doc = ET.parse('test.xml')

# 打开xml文档

doc = ET.ElementTree(file='test.xml')

root = doc.getroot()

print(root.tag)

print( root.attrib)

print("study1")

for child_of_root in root:

print(child_of_root.tag,child_of_root.attrib,child_of_root.text)

print("study2")

print(root[0].tag, root[0].text)

print("study3")

for elem in doc.iter():

print(elem.tag, elem.attrib)

print("study4")

for elem in doc.iter(tag="branch"):

print(elem.tag, elem.attrib)

print("study5")

# 查询

for elem in doc.iterfind('branch/sub-branch'):

print(elem.tag, elem.attrib)

print("study6")

for elem in doc.iterfind('branch[@name="release01"]'):

print(elem.tag, elem.attrib)

print("study7")

# 若key存在则是修改,否则为添加属性

root[0].set('name', 'Apple3')

print(root[0].attrib)

# 删除属性

del root[0].attrib['name']

print(root[0].attrib)

for subelem in root:

print(subelem.tag, subelem.attrib)

print("study8")

# 将修改写入xml文档

doc.write('test.xml')

print("write ok")

三 实验输出结果

doc

{}

study1

branch {'foo': 'bar', 'hash': '1cdf045c', 'name2': 'Apple2'}

text,source

branch {'hash': 'f200013e', 'name': 'release01'}

branch {'name': 'invalid'}

study2

branch

text,source

study3

doc {}

branch {'foo': 'bar', 'hash': '1cdf045c', 'name2': 'Apple2'}

branch {'hash': 'f200013e', 'name': 'release01'}

sub-branch {'name': 'subrelease01'}

branch {'name': 'invalid'}

study4

branch {'foo': 'bar', 'hash': '1cdf045c', 'name2': 'Apple2'}

branch {'hash': 'f200013e', 'name': 'release01'}

branch {'name': 'invalid'}

study5

sub-branch {'name': 'subrelease01'}

study6

branch {'hash': 'f200013e', 'name': 'release01'}

study7

{'foo': 'bar', 'hash': '1cdf045c', 'name2': 'Apple2', 'name': 'Apple3'}

{'foo': 'bar', 'hash': '1cdf045c', 'name2': 'Apple2'}

branch {'foo': 'bar', 'hash': '1cdf045c', 'name2': 'Apple2'}

branch {'hash': 'f200013e', 'name': 'release01'}

branch {'name': 'invalid'}

study8

ok

四 参考网址:

1. https://blog.csdn.net/wklken/article/details/7603071?utm_source=blogxgwz7

2. https://blog.csdn.net/weixin_30549657/article/details/98340427

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值