我正在尝试获取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)
所以我想有一个变量,它等于“有些文本更多的文字” 任何想法都非常受欢迎!
答案 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)