Tôi sử dụng python sax để phân tích cú pháp tệp xml. Tệp xml thực sự là sự kết hợp của nhiều tệp xml. Có vẻ như sau:lỗi python sax "rác sau phần tử tài liệu"
<row name="abc" age="40" body="blalalala..." creationdate="03/10/10" />
<row name="bcd" age="50" body="blalalala..." creationdate="03/10/09" />
Mã trăn của tôi là như sau. Nó hiển thị lỗi "rác sau phần tử tài liệu". Bất kỳ ý tưởng tốt để giải quyết vấn đề này. Cảm ơn.
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:
+1 Tôi đã gặp lỗi chính xác này và câu hỏi này đã giúp tôi. Không thể tìm ra phần tử gốc bị thiếu trong lỗi "phần tử sau khi phần tử tài liệu": D –