繁体   English   中英

xml.etree.ElementTree 将父标签附加到子标签

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM