在python中是否有允许按路径添加元素的xml解析器
是否有任何方法可以使用如下“路径”向xml文档添加一组条目:在python中是否有允许按路径添加元素的xml解析器,python,xml,parsing,path,Python,Xml,Parsing,Path,是否有任何方法可以使用如下“路径”向xml文档添加一组条目: element = xmldoc.createElement("Work\\MainProject\\prj\\project.vcproj") xmldoc.appendChild(element) 哪个将自动在xml文件中创建所有必需的条目 非常感谢, Roman我不确定这是否正是你想要的(有点不清楚“所有必要的条目”是什么意思)。无论如何,下面是如何使用ElementTree(使用Python2.6测试)基于“路径字符串”创建
element = xmldoc.createElement("Work\\MainProject\\prj\\project.vcproj")
xmldoc.appendChild(element)
哪个将自动在xml文件中创建所有必需的条目
非常感谢,
Roman我不确定这是否正是你想要的(有点不清楚“所有必要的条目”是什么意思)。无论如何,下面是如何使用ElementTree(使用Python2.6测试)基于“路径字符串”创建两种XML层次结构。注意:minidom并不是真正必要的;它只用于漂亮的印刷
from xml.etree.ElementTree import Element, SubElement, tostring
from xml.dom.minidom import parseString
def deep(tags):
"""Create a deep hierarchy with tags[0] as the root and
tags[-1] as the sole leaf node"""
root = Element(tags[0])
parent = root
for tag in tags[1:]:
elem = SubElement(parent, tag)
parent = elem
return root
def shallow(tags):
"""Create a shallow hierarchy with tags[0] as the root and
the other items as direct children"""
root = Element(tags[0])
for tag in tags[1:]:
elem = SubElement(root, tag)
return root
def pprint(s):
dom = parseString(s)
return dom.toprettyxml(indent=" ")
if __name__ == '__main__':
p = "Work/MainProject/prj/project.vcproj"
taglist = p.split("/")
d = deep(taglist)
print pprint(tostring(d))
s = shallow(taglist)
print pprint(tostring(s))
=>
<?xml version="1.0" ?>
<Work>
<MainProject>
<prj>
<project.vcproj/>
</prj>
</MainProject>
</Work>
<?xml version="1.0" ?>
<Work>
<MainProject/>
<prj/>
<project.vcproj/>
</Work>