1
2008
141100
4
2011
59900
68
2011
13600
import xml.etree.ElementTree as ET
#1.解析xml文件,返回ElementTree对象
tree = ET.parse('country_data.xml')
#2.获得根节点
root = tree.getroot()
#3.打印根节点标签名
print("coutry_data.xml的根节点:"+root.tag)
#4.打印出根节点的属性和属性值
print("根节点标签里的属性和属性值:"+str(root.attrib))
#5.通过遍历获取孩子节点的标签、属性和属性值
for child in root:
print(child.tag, child.attrib)
#6.获取country标签下的子标签的内容
print("排名:"+root[0][0].text,"国内生产总值:"+root[0][2].text,)
#7.把所有neighbor标签找出来,并打印出标签的属性和属性值。
for neighbor in root.iter('neighbor'):
print(neighbor.attrib)
#8.使用findall()方法把满足条件的标签找出来迭代。
for country in root.findall('country'):
rank = country.find('rank').text
name = country.get('name')
print(name,rank)
输出结果:
---------------------------------------------
coutry_data.xml的根节点:data
根节点标签里的属性和属性值:{'name': 'Kaina', 'age': '18'}
---------------------------------------------
country {'name': '列支敦斯登'}
country {'name': '新加坡'}
country {'name': ' 巴拿马'}
排名:1 国内生产总值:141100
---------------------------------------------
{'name': '澳大利亚', 'direction': '东部'}
{'name': '新西兰', 'direction': '西部'}
{'name': '马来西亚', 'direction': '北部'}
{'name': '哥斯达黎加', 'direction': '西部'}
{'name': ' 哥伦比亚', 'direction': '东部'}
---------------------------------------------
列支敦斯登 1
新加坡 4
巴拿马 68
---------------------------------------------
import xml.etree.ElementTree as ET
#1.解析xml文件,返回ElementTree对象
tree = ET.parse('country_data.xml')
#2.获得根节点
root = tree.getroot()
#3.遍历修改标签(添加属性和属性值、修改属性值、删除标签)
for rank in root.iter("rank"):
new_rank=int(rank.text)+1
rank.text=str(new_rank)
rank.set("updated","yes")
#4.write()的作用:创建文件,并把xml写入新的文件
#5.指定写入内容的编码
tree.write("output.xml",encoding="utf-8")
修改后保存在output.xml文件的数据:
2
2008
141100
5
2011
59900
69
2011
13600
import xml.etree.ElementTree as ET
#1.解析xml文件,返回ElementTree对象
tree = ET.parse('country_data.xml')
#2.获得根节点
root = tree.getroot()
#3.通过遍历获得满足条件的元素,并使用remove()指定删除
for country in root.findall('country'):
rank=int(country.find("rank").text)
if rank>50:
root.remove(country)
#4.删除后再把数据保存到output.xml文件中
tree.write("output.xml",encoding="utf-8")
删除后保存在output.xml文件的数据:
1
2008
141100
4
2011
59900