蟒蛇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"> </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"> </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。
您也可能遇到
问题,该问题不是有效的XML实体(尽管它在XHTML中有效)。此外,您的<jobs>
标签未正确关闭;最后一行应该是</jobs>
。
通常,如果您在阅读XML文件时遇到问题,首先要检查XML文件是否格式良好。一种可能的方法是将其输入W3C validator。
感谢您的回复和我的权利,但对于其他一些标签(我粘贴在这里)类属性和大小属性的值不被引用,但即使其工作正常,所以我很困惑,并在这里问 – 2012-07-23 13:40:40
是否错误是'?'字符在上面的p标签中,因为它看起来有些不同于正常的东西?标记(假设所有属性的值都被引用) – 2012-07-23 13:44:01
XML_must_中的属性值必须被引用。解析器可以不加引号地接受它们,但这不会使XML有效。我不知道你的“?”字符,但尝试删除它,看看解析器是否接受它。另外,我刚刚注意到你的''标签没有正确关闭。 –
2012-07-23 13:48:14