Skip to main content
 首页 » 编程设计

python之如何在提供给 python 中的 xml.sax 解析器之前从 xml 文件中删除特殊字符和 & 标记(无效的 xml 标记)

2025年05月04日8zhenyulu

目前我正在研究 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'">�</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> 

当解析器到达 div 标记中的 & 时,它停止执行并显示以下错误

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

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

请您参考如下方法:

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