python xml.sax错误“格式不正确<invalid token =”“>”</invalid>

时间:2012-07-23 13:31:56

标签: python xml

假设我的XML文件中有以下标记:

<?xml version="1.0" encoding="utf-8"?>
<jobs>
<job>
<P class="Beaton"><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">&nbsp; </SPAN>Position accountability<o:p></o:p></FONT></SPAN></FONT></P>
<P class="Beaton"><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">&nbsp;</SPAN>55 FTEs <o:p></o:p></FONT></SPAN></FONT></P>
</job>
</jobs>

以下是我的代码:

from xml.sax.handler import ContentHandler
import xml.sax

xml_path = 'windows/xml_file.xml'

try:
    parser = xml.sax.make_parser( )
    parser.parse(open(xml_path))

except (xml.sax.SAXParseException), e:
        print "*** PARSER error: %s" % e

Result :
*** PARSER error: windows/xml_file.xml:4:113: not well-formed <invalid token>

有谁能告诉我p标签有什么问题以及如何避免这种错误?

1 个答案:

答案 0 :(得分:0)

问题可能在于您的FONT标记;应引用size属性的值,否则这不是有效的XML。

您可能还遇到&nbsp;的问题,<jobs>不是有效的XML实体(尽管它在XHTML中有效)。此外,您的</jobs>代码未正确关闭;最后一行应为{{1}}。

通常,如果您在读取XML文件时遇到问题,首先要检查XML文件是否格式正确。一种可能的方法是将其输入W3C validator

相关问题