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

如何在python中保存xml标记之间的文本?,python,xml,Python,Xml,我正在尝试获取xml标记之间的文本。有好几篇关于它的帖子,但我不明白的是如何将它保存在变量中。下面的代码打印我想要的内容,但一旦我用return替换print,它就不会将此文本保存在变量中。我想我遗漏了一些非常简单的东西 from xml.sax import make_parser, handler line = '<text><p><s id="1">Some text <someothertag>some more text</som

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

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)
所以我想要一个变量,它等于一些文本或者更多的文本
任何想法都欢迎

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

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)

当我把这个函数放在另一个函数中时,我得到一个错误:没有定义全局名称“result”。当它位于另一个函数之外时,每个字符串都与前一个字符串连接。所以最后是一根大绳子。你有什么想法,我应该适应什么?我只找到了使用self的建议,但它已经存在了。非常感谢。如果你有其他问题,你需要问另一个问题,请详细描述它,即提供代码、错误等。对不起,我无法理解你在做什么,什么不起作用。