import xml.etree.ElementTree as etree
# or for a faster C implementation
# import xml.etree.cElementTree as etree
tree = etree.parse('input.xml')
elem = tree.find('//tag-Name') # finds the first occurrence of element tag-Name
elem.text = 'newName'
tree.write('output.xml')
标准库的最佳选择是(我认为)是xml.etree包。在
假设示例标记在文档中某个位置只出现一次:
或者,如果标记名多次出现,并且您希望将它们全部更改(如果它们的内容为“oldName”):
^{pr2}$如果您完全肯定字符串
<tag-Name>
将永远出现在标记内,并且XML将始终如此格式化,那么您可以始终使用一些好的旧字符串操作技巧,例如:如果XML的格式并不总是像
^{pr2}$<tag>value</tag>
那样方便,可以编写如下内容:其他人已经提到了
xml.dom.minidom
,如果您不能绝对肯定您的XML将如此简单,那么这可能是一个更好的主意。但是,如果您能保证这一点,请记住XML只是一大块文本,您可以根据需要对其进行操作。在我在一些生产代码中使用了类似的技巧,其中像
if "somevalue" in htmlpage
这样的简单检查比调用beauthoulsoup、lxml或其他*ML库要快得多,也更容易理解。在Python有用于处理xml的“内置”库。为了完成这个简单的任务,我会研究minidom。您可以在此处找到文档:
http://docs.python.org/library/xml.dom.minidom.html
相关问题 更多 >
编程相关推荐