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) ``# 打印生成的格式

相关推荐
JeffongTan7 小时前
在LWC中镶嵌VF Page获取用户IP
前端·javascript·salesforce
2601_962293247 小时前
Python自动化统计团队工作量并生成可视化仪表盘的脚本方案【指导】
python·数据分析·自动化·可视化·仪表盘
2601_962293799 小时前
OCRmyPDF批处理脚本:使用Python自动化复杂OCR任务
python·自动化·批处理脚本·ocrmypdf·ocr任务
陆枫Larry9 小时前
Astro 是什么
前端
Java后端的Ai之路10 小时前
20、Python - 备忘录模式
开发语言·人工智能·python·外观模式·备忘录模式
2601_9620777111 小时前
基于Python与NLP的新闻事件信息抽取实战:从NER到时空标准化
python·nlp·transformers·spacy·新闻事件抽取
是立不是利11 小时前
写给设计师的 CSS 博客美学指南
前端·css
JavaPub-rodert11 小时前
LangChain 从入门到 Agent 实战:用 Python 搭建一个真正能调用工具和知识库的 AI 助手
人工智能·python·langchain
郝学胜-神的一滴11 小时前
Qt 高级编程 045:坐标体系深度实战
开发语言·c++·windows·python·qt·程序人生
默_笙12 小时前
🏝 Docker 就是"房地产开发":从施工图纸到小区物业的容器化指南
前端·javascript