【发布时间】:2012-07-24 06:21:52
【问题描述】:
您好,目前我正在使用xml.sax.handler 来解析 xml 文件。
下面是我的 file.xml 代码:
<?xml version="1.0" encoding="utf-8"?>
<sturp>
<gear>
<UL>
<LI><I>Free Private Housing or a Generous Housing Allowance</I></LI>
<LI><I>$50K in Free Life Insurance coverage</I></LI>
</UL>
<P style="MARGIN: 0in 0in 0pt" class="MsoNormal"><FONT size="3"><SPAN style="FONT-FAMILY: Symbol; COLOR: black; mso-ascii-font-family: 'Times New Roman'">�</SPAN><SPAN style="COLOR: black"><FONT face="Times New Roman"><SPAN style="mso-spacerun: yes"> </SPAN>Position will manage 24 ED Rooms with 24/7 accountability<o:p></o:p></FONT></SPAN></FONT></P>
<DIV> </DIV>
</gear>
</sturp>
下面是我的代码
xmlFilePath = 'user/documents/file.xml'
try:
parser = xml.sax.make_parser( )
handler = FeedHandler( conn, clientSiteId, clientId, documentElementName, jobElementName )
handler.setMapping( mapping )
parser.setContentHandler(handler)
parser.setEntityResolver(handler)
parser.parse(open(xmlFilePath))
except (xml.sax.SAXParseException), e:
print "*** PARSER error: %s" % e
输出:
*** PARSER error: user/documents/file.xml:8:150: not well-formed <invalid token>
*** PARSER error: user/documents/file.xml:9:1: not well-formed <invalid token>
实际上给我的源xml文件不是有效的xml格式,但我需要解析它。
如何在将其提供给上述代码中的解析器之前从 xml 文件中忽略 &nbsp; 和 �(也应该转义所有错误和无效的 xml 标记)。
提前谢谢........
【问题讨论】:
-
如果您的 XML 文件没有对其编码撒谎...
-
@Ignacio Vazquez-Abrams:实际上一切正常,但它在特殊字符和 & 处停止,如上所示,因此如何在输入 sax 解析器之前忽略 xml 中的那些