[英]xml.etree.ElementTree append parent tag to child tag
我正在尝试使用xml.etree.ElementTree
来解析一个 xml 字符串,找到一个特定的标签,并通过附加一个父标签来包装子标签。
我的 XML:
<a>
<b>text1</b>
<c>text2</c>
</a>
所需的 XML:
<a>
<b>text1</b>
<new_parent_tag_added>
<c>text2</c>
</new_parent_tag_added>
</a>
当前代码:
document_root = etree.ElementTree(etree.fromstring( XML_STRING))
root = document_root.find('a')
b = etree.SubElement(root, 'new_parent_tag_added')
c = etree.SubElement(b, 'c')
在上面的代码中,如何保留现有标签<c>
的值以使其与所需的 xml 匹配?
使用内置的 ElementTree 模块,您可以执行以下操作(谢谢@mzjn):
c = root.find('c')
etree.SubElement(root, 'new_parent_tag_added').append(c)
root.remove(c)
使用lxml.etree它有点短:
etree.SubElement(root, 'new_parent_tag_added').append(root.find('c'))
无论哪种方式,最好记住节点的行为类似于列表,因此您可以附加内容。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.