在XML标签的文本元素中提取标签

4
假设我有一个以下形式的XML文档:
<root>
  <foos>
    <foo>the quick <bar>brown </bar>fox</foo>
  </foos>
  <!-- Lots more <foo></foo> -->
</root>

我该如何提取完整文本字符串the quick fox以及字符串brown

import xml.etree.ElementTree as ET
doc = ET.parse(xmldocument).getroot()
foos = doc.find('foos')
for foo in foos:
    print foo.text # This will print 'the quick '

不确定如何解决这个问题。

2个回答

2
您也可以尝试以下代码,它会自动遍历所有嵌套标签:

foos = doc.find('foos')
for foo in foos:
    for text in foo.itertext():
        print text.strip(),
    print

0
from scrapy.selector import XmlXPathSelector

xml = \
"""
<root>
    <foos>
        <foo>the quick <bar>brown </bar>fox</foo>
    </foos>
</root>
"""


hxs =XmlXPathSelector(text=xml)
foos = hxs.select('//foos')
for one in foos:
    text = one.select('./foo//text()').extract()
    text = ''.join(text)
    print text

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接