2

現在、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'">�&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 の重要な点は、XML が標準であり、人々が実際に標準に固執する場合にのみ、XML からメリットが得られるということです。

于 2012-07-24T09:15:58.540 に答える
0

これは、応答を修復するための良い習慣ではありません。Android では特殊文字を解析できません。

特殊文字を変更する必要があります..

于 2013-12-11T10:15:52.653 に答える