1

假设我的 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'">�&lt;/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'">�&lt;/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 标签有什么问题以及如何避免这种错误?

4

1 回答 1

0

问题可能出在您的FONT标签上;size应该引用属性的值,否则这根本不是有效的 XML。

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

一般来说,如果您在读取 ​​XML 文件时遇到问题,第一件事始终是检查 XML 文件的格式是否正确。一种可能的方法是将其输入W3C 验证器

于 2012-07-23T13:34:47.837 回答