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

如何更简便地提取ElementTree中所有嵌套文本?

如何更简便地提取ElementTree中所有嵌套文本?

嘿,我太懂你这种不想写一堆繁琐循环的心情了!用xml.etree解析HTML的时候,.text属性确实够让人头疼——只能拿到元素第一级子节点的文本,嵌套在更深层的内容完全碰不到。

其实不用手动遍历所有子元素,ElementTree本身就有个很实用的方法能解决这个问题:itertext()。

这个方法会自动递归遍历目标元素及其所有子元素,把所有文本节点的内容都迭代出来。你只需要把这些文本片段拼接起来就行,代码超简洁:

from xml.etree import ElementTree as ET

# 假设你已经定位到了目标元素target_elem
full_text = ''.join(target_elem.itertext())

举个实际例子,如果你有这样的HTML结构:

<div class="content">
  欢迎来到
  <span>我的博客</span>
  ,这里有很多实用的编程技巧!
</div>

用itertext()就能一次性把“欢迎来到我的博客,这里有很多实用的编程技巧!”全部提取出来,完全不用自己写递归或者循环去处理每个子元素。

另外提一嘴,如果日常处理HTML的场景比较多,其实xml.etree对不规范HTML的兼容性一般,要是遇到复杂的页面结构,BeautifulSoup会更顺手,但如果就想坚持用xml.etree,itertext()绝对是最优雅的解决方案了。

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.08 11:18:14