現在、xmlファイルを解析するためにxml.saxパーサーに取り組んでいます
次のコードがあるとします
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>
パーサーが & in div タグに達すると、実行が停止し、次のエラーが表示されます
*** PARSER error: users/file.xml:5:1: not well-formed <invalid token>
xml ファイルからパーサーに渡す前に、すべての無効な xml トークンを削除またはエスケープする方法はありますか? & および特殊文字を xml タグからエスケープする機能はありますか? そうでない場合は、xml ファイルをループしてすべての無効なトークンを削除する必要があります。 ? しかし、それを行う方法がわかりません。誰でもそれを行うコードを共有してください。