假设我的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"> </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标签有什么问题以及如何避免这种错误?
答案 0 :(得分:0)
问题可能在于您的FONT
标记;应引用size
属性的值,否则这不是有效的XML。
您可能还遇到
的问题,<jobs>
不是有效的XML实体(尽管它在XHTML中有效)。此外,您的</jobs>
代码未正确关闭;最后一行应为{{1}}。
通常,如果您在读取XML文件时遇到问题,首先要检查XML文件是否格式正确。一种可能的方法是将其输入W3C validator。