蟒蛇xml.sax错误

问题描述:

想我已经在我的XML文件中的下列标签:蟒蛇xml.sax错误

<?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标签有什么问题,以及如何避免这种错误?

问题可能在于您的FONT标签;应该引用size属性的值,否则这仅仅是无效的XML。

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

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

+0

感谢您的回复和我的权利,但对于其他一些标签(我粘贴在这里)类属性和大小属性的值不被引用,但即使其工作正常,所以我很困惑,并在这里问 – 2012-07-23 13:40:40

+0

是否错误是'?'字符在上面的p标签中,因为它看起来有些不同于正常的东西?标记(假设所有属性的值都被引用) – 2012-07-23 13:44:01

+0

XML_must_中的属性值必须被引用。解析器可以不加引号地接受它们,但这不会使XML有效。我不知道你的“?”字符,但尝试删除它,看看解析器是否接受它。另外,我刚刚注意到你的''标签没有正确关闭。 – 2012-07-23 13:48:14