python XML ElementTree的增删改查
Posted 子不语332
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python XML ElementTree的增删改查相关的知识,希望对你有一定的参考价值。
import xml.etree.ElementTree as ET """ ElementTree.write() 将构建的XML文档写入(更新)文件。 Element.set(key, value) 添加和修改属性 Element.text = ‘‘ 直接改变字段内容 Element.remove(Element) 删除Element节点 Element.append(Element) 为当前的Elment对象添加子对象 ET.SubElement(Element,tag)创建子节点 """ # 增加自动缩进换行 def indent(elem, level=0): i = " " + level*" " if len(elem): if not elem.text or not elem.text.strip(): elem.text = i + " " if not elem.tail or not elem.tail.strip(): elem.tail = i for elem in elem: indent(elem, level+1) if not elem.tail or not elem.tail.strip(): elem.tail = i else: if level and (not elem.tail or not elem.tail.strip()): elem.tail = i #------------新增XML---------- #创建根节点 a = ET.Element("student") #创建子节点,并添加属性 b = ET.SubElement(a,"name") b.attrib = {"NO.":"001"} #添加数据 b.text = "张三" #创建elementtree对象,写文件 indent(a,0) tree = ET.ElementTree(a) tree.write("writeXml.xml",encoding="utf-8") #----------编辑XML-------- # 读取待修改文件 updateTree = ET.parse("writeXml.xml") root = updateTree.getroot() # --新增-- # 创建新节点并添加为root的子节点 newnode = ET.Element("name") newnode.attrib = {"NO.":"003"} newnode.text = "张三水" root.append(newnode) #---修改--- sub1 = root.findall("name")[2] # --修改节点的属性 sub1.set("NO.","100") # --修改节点内文本 sub1.text="陈真" #----删除--- #--删除标签内文本 sub1.text = "" #--删除标签的属性 del sub1.attrib["NO."] #--删除一个节点 root.remove(sub1) # 写回原文件 indent(root,0) updateTree.write("writeXml.xml",encoding="utf-8", xml_declaration=True)
XML操作封装
以上是关于python XML ElementTree的增删改查的主要内容,如果未能解决你的问题,请参考以下文章
使用 xml.etree.ElementTree 在 python 中解析 XML
python-23 xml.etree.ElementTree模块
python模块之xml.etree.ElementTree