您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Python元素树-从元素中提取文本,剥离标签

Python元素树-从元素中提取文本,剥离标签

如果您在Python 3.2+下运行,则可以使用itertext

itertext 创建一个文本迭代器,该迭代器按文档顺序循环遍历此元素和所有子元素,并返回所有内部文本:

import xml.etree.ElementTree as ET
xml = '<tag>Some <a>example</a> text</tag>'
tree = ET.fromstring(xml)
print(''.join(tree.itertext()))

# -> 'Some example text'

如果您在较低版本的Python中运行,则可以通过将其附加到类上来重用的实现itertext()Element,然后可以像上面一样完全调用它:

# original implementation of .itertext() for Python 2.7
def itertext(self):
    tag = self.tag
    if not isinstance(tag, basestring) and tag is not None:
        return
    if self.text:
        yield self.text
    for e in self:
        for s in e.itertext():
            yield s
        if e.tail:
            yield e.tail

# if necessary, monkey-patch the Element class
if 'itertext' not in ET.Element.__dict__:
    ET.Element.itertext = itertext

xml = '<tag>Some <a>example</a> text</tag>'
tree = ET.fromstring(xml)
print(''.join(tree.itertext()))

# -> 'Some example text'
python 2022/1/1 18:29:45 有509人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶