1
我有一个看起来像这样的XML文件:如何使用python sax解析器将XML标记之间的文本作为字符串获取和存储?
<TAG1>
<TAG2 attribute1 = "attribute_i_need" attribute2 = "attribute_i_dont_need" >
Text I want to use
</TAG2>
<TAG3>
Text I'm not interested in
</TAG3>
<TAG4>
More text I want to use
</TAG4>
我需要的是某种方式得到“文字我想用”和“更多的文字我想用”,但不是“文字我m不感兴趣“的字符串形式,稍后可以被某些任意函数使用。我还需要以字符串的形式得到“attribute_i_need”。我之前并没有真正使用sax解析器,而且我完全陷入困境。我可以只打印所有文本使用下列文件中:
import xml.sax
class myHandler(xml.sax.ContentHandler):
def characters(self, content):
print (content)
parser = xml.sax.make_parser()
parser.setContentHandler(myHandler())
parser.parse(open("sample.xml", "r"))
这将基本上给我的输出:
Text I want to use
Text I'm not interested in
More text I want to use
但问题是双重的。首先,这包括我不感兴趣的文本。其次,它所做的只是打印文本。我不知道如何只打印特定的文本,或编写代码将文本返回为一个字符串,我可以将其分配给一个变量并稍后使用。我甚至不知道如何开始提取我感兴趣的属性。
有谁知道如何解决这个问题?而且我更喜欢一个涉及萨克斯解析器的解决方案,因为我至少对它的工作原理有一个模糊的理解。
非常感谢您提供快速,非常详细的答案。我会试一试! – Scheherazade 2013-03-02 18:43:19