如何在python中的xml标签之间保存文本?

时间:2018-03-20 16:39:18

标签: python xml

我正在尝试获取xml标记之间的文本。有几篇关于它的帖子,但我不明白的是如何将它保存在一个变量中。下面的代码打印出我想要的内容,但只要将“print”替换为“return”,它就不会将此文本保存在变量中。我想我在这里错过了一些非常简单的东西。

from xml.sax import make_parser, handler

line = '<text><p><s id="1">Some text <someothertag>some more text</someothertag></s></p></text>'
class extract_text(handler.ContentHandler):
    def characters(self, data):
        print data.strip()

parser = make_parser()
parser.setContentHandler(extract_text())
parser.feed(line)

所以我想有一个变量,它等于“有些文本更多的文字” 任何想法都非常受欢迎!

1 个答案:

答案 0 :(得分:1)

如果您只是从处理程序返回值,它将不会存储在任何地方。 你需要自己做:

result = ''

class extract_text(handler.ContentHandler):
    def characters(self, data):
        global result
        result += data.strip() + '\n'

parser = make_parser()
parser.setContentHandler(extract_text())
parser.feed(line)

print(result)