我有一个包含数万个XML文件(小文件)的语料库,我正在尝试使用Python并提取其中一个XML标记中包含的文本,例如,身体标记之间的所有内容:
<body> sample text here with <bold> nested </bold> tags in this paragraph </body>
然后编写包含此字符串的文本文档,然后向下移动XML文件列表。
我正在使用effbot的ELementTree但无法找到正确的命令/语法来执行此操作。我找到了一个使用miniDOM的dom.getElementsByTagName的网站,但我不确定ElementTree的相应方法是什么。任何想法都将不胜感激。
答案 0 :(得分:2)
更好的答案,展示如何实际使用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)
答案 1 :(得分:1)
我只想用re:
import re
body_txt = re.match('<body>(.*)</body>',body_txt).groups()[0]
然后删除内部标签:
body_txt = re.sub('<.*?>','',body_txt)
你不应该在不需要时使用regexp,这是真的......但是当它们使用时没有任何问题。