我使用python sax解析xml文件。 xml文件实际上是多个xml文件的组合。 如下所示:
<row name="abc" age="40" body="blalalala..." creationdate="03/10/10" />
<row name="bcd" age="50" body="blalalala..." creationdate="03/10/09" />
我的python代码如下。显示“文档元素后的垃圾邮件”错误。任何解决这个问题的好主意。谢谢。
from xml.sax.handler import ContentHandler
from xml.sax import make_parser,SAXException
import sys
class PostHandler (ContentHandler):
def __init__(self):
self.find = 0
self.buffer = ''
self.mapping={}
def startElement(self,name,attrs):
if name == 'row':
self.find = 1
self.body = attrs["body"]
print attrs["body"]
def character(self,data):
if self.find==1:
self.buffer+=data
def endElement(self,name):
if self.find == 1:
self.mapping[self.body] = self.buffer
print self.mapping
parser = make_parser()
handler = PostHandler()
parser.setContentHandler(handler)
try:
parser.parse(open("2.xml"))
except SAXException:
在数据周围添加包装标签。我使用了ElementTree,因为它非常简单,但是您可以在任何解析器上执行相同的操作:
结果
似乎XML文件中没有根元素。将行元素包装成单个行元素。
相关问题 更多 >
编程相关推荐