Python入门:常用模块—xml模块

xml是实现不同语言或程序之间进行数据交换的协议,跟json差不多,但json使用起来更简单

xml的格式如下,就是通过<>节点来区别数据结构的:

<data>

``<country name``=``"Liechtenstein"``>

``<rank updated``=``"yes"``>``2``<``/``rank>

``<year updated``=``"yes"``>``2010``<``/``year>

``<gdppc>``141100``<``/``gdppc>

``<neighbor direction``=``"E" name``=``"Austria" /``>

``<neighbor direction``=``"W" name``=``"Switzerland" /``>

``<``/``country>

``<country name``=``"Singapore"``>

``<rank updated``=``"yes"``>``5``<``/``rank>

``<year updated``=``"yes"``>``2013``<``/``year>

``<gdppc>``59900``<``/``gdppc>

``<neighbor direction``=``"N" name``=``"Malaysia" /``>

``<``/``country>

``<country name``=``"Panama"``>

``<rank updated``=``"yes"``>``69``<``/``rank>

``<year updated``=``"yes"``>``2013``<``/``year>

``<gdppc>``13600``<``/``gdppc>

``<neighbor direction``=``"W" name``=``"Costa Rica" /``>

``<neighbor direction``=``"E" name``=``"Colombia" /``>

``<``/``country>

<``/``data>

xml协议在各个语言里的都 是支持的,在python中可以用以下模块操作xml

import xml.etree.ElementTree as ET

tree ``= ET.parse(``"xmltest.xml"``)

root ``= tree.getroot()

print``(root.tag)

# 遍历xml文档

for child ``in root:

``print``(child.tag, child.attrib)

``for i ``in child:

``print``(i.tag, i.text)

# 遍历year节点

for node ``in root.``iter``(``'year'``):

``print``(node.tag, node.text)

# 修改和删除xml文档内容

# 修改

for node ``in root.``iter``(``'year'``):

``new_year ``= int``(node.text) ``+ 1

``node.text ``= str``(new_year)

``node.``set``(``'updated'``, ``'yes'``)

tree.write(``"xmltest.xml"``)

# 删除

for country ``in root.findall(``'country'``):

``rank ``= int``(country.find(``'rank'``).text)

``if rank > ``50``:

``root.remove(country)

tree.write(``'output.xml'``)

自己创建xml文档

new_xml ``= ET.Element(``"namelist"``)

name ``= ET.SubElement(new_xml, ``"name"``, attrib``=``{``"enrolled"``: ``"yes"``})

age ``= ET.SubElement(name, ``"age"``, attrib``=``{``"checked"``: ``"no"``})

sex ``= ET.SubElement(name, ``"sex"``)

sex.text ``= '33'

name2 ``= ET.SubElement(new_xml, ``"name"``, attrib``=``{``"enrolled"``: ``"no"``})

age ``= ET.SubElement(name2, ``"age"``)

age.text ``= '19'

et ``= ET.ElementTree(new_xml) ``# 生成文档对象

et.write(``"test.xml"``, encoding``=``"utf-8"``, xml_declaration``=``True``)

ET.dump(new_xml) ``# 打印生成的格式

相关推荐
仰望星空@脚踏实地9 分钟前
本地Python脚本是否存在命令注入风险
python·datakit·命令注入
LOnghas12111 小时前
果园环境中道路与树木结构检测的YOLO11-Faster语义分割方法
python
我即将远走丶或许也能高飞2 小时前
vuex 和 pinia 的学习使用
开发语言·前端·javascript
钟离墨笺2 小时前
Go语言--2go基础-->基本数据类型
开发语言·前端·后端·golang
爱吃泡芙的小白白2 小时前
Vue 3 核心原理与实战:从响应式到企业级应用
前端·javascript·vue.js
卓怡学长3 小时前
m115乐购游戏商城系统
java·前端·数据库·spring boot·spring·游戏
2501_944526423 小时前
Flutter for OpenHarmony 万能游戏库App实战 - 蜘蛛纸牌游戏实现
android·java·python·flutter·游戏
老陈聊架构3 小时前
『AI辅助Skill』掌握三大AI设计Skill:前端独立完成产品设计全流程
前端·人工智能·claude·skill
飞Link3 小时前
【Django】Django的静态文件相关配置与操作
后端·python·django
Ulyanov4 小时前
从桌面到云端:构建Web三维战场指挥系统
开发语言·前端·python·tkinter·pyvista·gui开发