当前位置: 首页 > 知识库问答 >
问题:

使用Python ElementTree提取XML标记中的文本

羊舌自强
2023-03-14

我有一个包含数万个XML文件(小文件)的语料库,我正在尝试使用Python并提取其中一个XML标记中包含的文本,例如,body标记之间的所有内容,例如:

<body> sample text here with <bold> nested </bold> tags in this paragraph </body>

然后编写一个包含此字符串的文本文档,然后向下移动XML文件列表。

我正在使用effbot的ELementTree,但找不到正确的命令/语法来做到这一点。我找到了一个使用迷你DOM的dom.getElementsByTagName的网站,但我不确定元素树的相应方法是什么。任何想法都将不胜感激。

共有2个答案

易琛
2023-03-14

我会用re:

import re
body_txt = re.match('<body>(.*)</body>',body_txt).groups()[0]

然后要删除内部标签

body_txt = re.sub('<.*?>','',body_txt)

你不应该在不需要的时候使用regexp,这是真的。。。但是,在需要的时候使用它们并没有什么错。

吕衡
2023-03-14

一个更好的答案,展示了如何实际使用XML解析来做到这一点:

import xml.etree.ElementTree as ET
stringofxml = "<body> sample text here with <bold> nested </bold> tags in this paragraph </body>"

def extractTextFromElement(elementName, stringofxml):
    tree = ET.fromstring(stringofxml)
    for child in tree:
        if child.tag == elementName:
            return child.text.strip()

print extractTextFromElement('bold', stringofxml)
 类似资料:
  • 我从http请求中得到了这个QString,我需要做的是只提取字符串“一致“在标签内 怎么做?

  • 问题内容: 我要提取: 来自标签的src的文本和 类数据内的定位标记的文本 我成功地提取了img src,但是从锚标记中提取文本时遇到了麻烦。 这是整个HTML页面的链接。 这是我的代码: 我想做的是 提取图像src(链接)和中的标题,因此例如: 应该提取: 问题答案: 以上所有答案确实可以帮助我构建答案,因此,我对其他用户提出的所有答案投了赞成票:但是我最终对自己正在处理的确切问题汇总了自己的答

  • 问题内容: 我有这个示例xml文件 我喜欢提取标题标签和内容标签的内容。 使用模式匹配或使用xml模块,哪种方法最适合提取数据。还是有更好的方法来提取数据。 问题答案: 特别是已经有一个内置的XML库。例如:

  • 问题内容: 这是XML的一部分: 提取标签很容易。做就是了: 但是,如何立即获得文本( 猫的照片 )呢?执行以下操作将返回一个空白字符串: 问题答案: 元素具有属性-因此,您要求的不是。 或者,例如: 这也适用于普通的ElementTree:

  • 我正在使用JAXB操作XML文件中的数据,并将这些值插入到数据库中。我有一个从特定的XML标记中提取数据的问题。这个XML标记包含字母数字值,但大约95%(如果不是99%)的时候,它包含的值是整数。因此,我将这些值视为。 提取这些引用的值会删除前导零,从而将作为结果值。我不明白为什么。我觉得JAXB将这些值视为整数。 我怎样才能得到正确的价值呢? 编辑: 下面是相应的POJO@XMLAccesso

  • 我正在尝试使用Python中的BeautifulSoup包提取存在于div标记中的文本。 示例我想提取标记 内部的文本 以及 中的文本 当我运行代码时,系统崩溃并显示以下错误: ----------------------------------------------------------------------------------------------------在60###artic