我正在尝试使用解析器解析XML
a 。我知道还有其他库可以使用,但来自这个库是我最熟悉的,对我来说似乎最不复杂。URL
xml.sax
Java
我用来解析的代码如下:
parser = xml.sax.make_parser()
handler = MangaHandler()
parser.setContentHandler(handler)
url = urlfetch.Fetch('http://www.mangapanda.com/alphabetical', allow_truncated = False, follow_redirects = False, deadline = False)
xml.sax.parseString(url.content, handler)
一旦解析器到达第一个&
符号,这将返回 SaxException(无效标记):
SAXParseException: <unknown>:582:34: not well-formed (invalid token)
因为urlfetch
返回一个字符串而不是一个流,所以我不能使用parse()
(它只适用于流),而是留给它使用parseString()
。要查看解析为流是否可以解决此问题,我尝试了:
parser.parse(io.StringIO(url.content).encode('utf-8'))
但这会返回:
TypeError: initial_value must be unicode or None, not str
我还尝试使用urllib2
返回流而不是返回流的库,urlfetch
但文件太大并且被自动截断,从而使我丢失了数据。
任何解决此问题的方法都将不胜感激,因为我花了几天时间绕过一个障碍,只是为了被另一个障碍阻止。