You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何移除XML中所有同类型嵌套标签?附实现代码求验证

如何移除XML中所有同类型嵌套标签?附实现代码求验证

嘿,我最近碰到个XML处理的小需求:要移除所有同类型的嵌套标签。具体来说,就是对每个XML元素,只要在它的子树里找到和它同名的子元素,就把这个子元素的标签删掉,只保留里面的内容——举个直观的例子,就是把 <a>...<a>...</a>...</a> 转换成 <a>.........</a> 这种形式。

我用lxml包写了一段看起来挺简洁的代码,用到了里面的iter()和strip_tags()方法,思路特别直接:

import lxml.etree

root = lxml.etree.parse('book.txt')

for element in root.iter():
    lxml.etree.strip_tags(element, element.tag)

print(lxml.etree.tostring(root).decode())

我还准备了测试用的输入文件内容,比如:

<book>
    <b><title>My <b>First</b> Book</title></b>
</book>

这段代码的逻辑其实很好理解:遍历XML树里的每一个元素,然后对当前元素,调用strip_tags()方法移除它下面所有和它同名的子标签,这样就能批量处理所有同类型的嵌套情况啦。

备注:内容来源于stack exchange,提问作者Jeyekomon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.17 10:49:35