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

如何提取pdf2txt生成的XML中<figure>标签内的空格分隔文本?

提取XML中
标签内的文本并以空格分隔

嘿,我来帮你搞定这个XML文本提取的需求!针对从pdf2txt生成的XML里提取<figure>标签内的所有文本并拼接成空格分隔的字符串,这里有两个实用方案:

  • 推荐方案:用Python的XML解析库处理
    正则虽然快,但面对XML的嵌套结构或者带属性的标签很容易翻车,所以优先用专门的XML解析工具。比如Python内置的xml.etree.ElementTree,示例代码如下:

    import xml.etree.ElementTree as ET
    
    # 如果你是从文件读取XML,用tree = ET.parse("your_file.xml").getroot()
    xml_content = """你的XML片段内容"""
    root = ET.fromstring(xml_content)
    
    # 定位所有<figure>标签(支持深层嵌套查找)
    figure_tags = root.findall('.//figure')
    for tag in figure_tags:
        # 提取标签内所有文本(包括子节点里的),然后用空格拼接并去除首尾多余空格
        result = ' '.join(tag.itertext()).strip()
        print(result)
    

    这个方法能完美处理各种合法的XML结构,确保不会漏掉任何文本内容。

  • 快速方案:正则表达式(仅限简单XML场景)
    如果你的XML结构特别简单,<figure>标签里没有嵌套其他标签,也没有额外属性,那可以用正则快速搞定:

    import re
    
    xml_content = """你的XML片段内容"""
    # 匹配<figure>和</figure>之间的所有内容,包括换行
    match_pattern = r'<figure>(.*?)</figure>'
    matched_texts = re.findall(match_pattern, xml_content, re.DOTALL)
    
    for text in matched_texts:
        # 把换行、多个连续空格替换成单个空格,再去除首尾空格
        cleaned_text = ' '.join(text.split()).strip()
        print(cleaned_text)
    

    注意:如果XML里有<figure id="xxx">这种带属性的标签,或者标签内嵌套了其他XML元素,正则就会出错,所以只适合简单场景。

举个实际例子,假设你的XML片段是:

$1,000,000 CAP022488-0214 10/29/2016 AUSTIN, TX 78705
用上面的方法就能得到你想要的结果:`$1,000,000 CAP022488-0214 10/29/2016 AUSTIN, TX 78705`

内容的提问来源于stack exchange,提问作者Venkatesh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 03:56:50