2

目前我正在使用 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

文件.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'">�&lt;/SPAN><SPAN style="COLOR: black"><FONT face="Times New Roman"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Position will manage 24 ED Rooms with 24/7 accountability<o:p></o:p></FONT></SPAN></FONT></P>
   <DIV>&nbsp;</DIV>
   </tag2>
</tag1>

当解析器到达 & in div 标签时,它会停止执行并显示以下错误

*** PARSER error: users/file.xml:5:1: not well-formed <invalid token>

如何在从 xml 文件提供给解析器之前删除或转义所有无效的 xml 标记,是否有任何功能可以转义 & 和特殊字符形成 xml 标签,否则我们需要遍历他的 xml 文件并删除每个无效标记? 但不知道该怎么做。任何人都可以分享这样做的代码。

4

2 回答 2

1

不要试图修复坏的 XML。首先修复创建错误 XML 的过程。你还没有告诉我们是什么程序写了这些东西。XML 的全部意义在于它是一个标准,只有当人们真正遵守该标准时,您才能从中受益。

于 2012-07-24T09:15:58.540 回答
0

这不是修复响应的好习惯。在 android 中无法解析特殊字符。

您需要更改特殊字符..

于 2013-12-11T10:15:52.653 回答