目前我正在使用xml.sax解析器来解析xml文件
假设我有以下代码
filepath = 'users/file.xml'
try:
parser = xml.sax.make_parser( )
parser.parse(open(filepath))
except (xml.sax.SAXParseException), e:
print "*** PARSER error: %s" % e
file.xml
<?xml version="1.0" encoding="utf-8"?>
<tag1>
<tag2>
<P style="MARGIN: 0in 0in 0pt" class="MsoNormal"><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 will manage 24 ED Rooms with 24/7 accountability<o:p></o:p></FONT></SPAN></FONT></P>
<DIV> </DIV>
</tag2>
</tag1>
当解析器到达&amp;在div标签中它停止执行并显示以下错误
*** PARSER error: users/file.xml:5:1: not well-formed <invalid token>
如何在从xml文件提供解析器之前删除或转义所有无效的xml标记,是否有任何函数可以转义&amp;和特殊字符组成xml标签,否则我们需要遍历他的xml文件并删除每个无效的令牌?但不知道该怎么做。任何人都可以分享这样做的代码。
答案 0 :(得分:1)
不要尝试修复错误的XML。首先修复创建错误XML的进程。你还没有告诉我们什么程序写了这个东西。关于XML的全部观点是它是一个标准,如果人们真正坚持标准,你只能从中受益。
答案 1 :(得分:0)
这不是修复响应的好习惯。 在android中无法解析特殊字符。
你需要改变特殊字符..