手绘教学网站/windows优化大师会员兑换码
'''在Python标准库中,ElementTree有两种实现方式:一种是纯Python的实现xml.etree.ElementTree,另一种是速度更快一点的xml.etree.cElementTree。如果不确定环境中是否有cElementTree,可以使用如下的方式导入
但从Python 3.3开始,会默认使用cElementTree来加快速度,但是之前的版本最好使用如上的代码,以提高代码的兼容性。'''
try:importxml.etree.cElementTree as ETexceptImportError:importxml.etree.ElementTree as ETdefmakeXML():#创建一个根节点,标签名为Root
root_element = ET.Element("Root")#插入两个子节点
sub_element1 = ET.SubElement(root_element, "sub_elemtnt1")
sub_element2= ET.SubElement(root_element, "sub_elemtnt2")for i in range(5):#设置tag 以及
subb = ET.SubElement(sub_element1, f"name_{i}", tag=f"tag_{i}", attrib={"name": f"value_{i}"})#为标签赋值
subb.text = f"abc{i}"subb2= ET.SubElement(sub_element2, f"name_{i}", tag=f"tag_{i}", attrib={"name": f"value_{i}"})
subb2.text= f"efg{i}"
#创建xml树,并将根节点放入其中
xml_tree =ET.ElementTree(root_element)#将xml 写入到文件中,参数1:xml文件生成的位置和名字,参数2:指定xml编码,参数3:xml 宣言,
# 即:是否有 <?xml version='1.0' encoding='utf-8'?> (这个方法生成的xml文件使用文本打开格式是没有缩进的)
xml_tree.write(r"C:\Users\v-yunhgu\Desktop\example.xml",
encoding="utf-8", xml_declaration=True)#第二种写入文件的方法 (这个方法生成的xml文件使用文本打开格式是有缩进的)
#ET模块转换root为bytes输出
xml_string =ET.tostring(root_element)from xml.dom importminidom
dom=minidom.parseString(xml_string)
with open(r"C:\Users\v-yunhgu\Desktop\example2.xml", 'w', encoding='utf-8') as f:#indent为根节点缩进,newl每行数据句末符号,addindent为其他节点缩进
dom.writexml(f, indent='\t', newl='\n',
addindent='\t', encoding='utf-8')defgetXML():
xmlPath= r"C:\Users\v-yunhgu\Desktop\example2.xml"
#解析xml 文件
xml_tree =ET.parse(xmlPath)#获取根节点
root_element =xml_tree.getroot()print("根节点名字:", root_element.tag)#遍历根节点下的子节点
for sub inroot_element:print("根节点下的字节点:", sub.tag)for s insub:print(s.tag, s.attrib, s.text)if __name__ == "__main__":
makeXML()
getXML()