2011-12-15 8 views
-1

私はいくつかのXMLデータを解析するためにNSXMLParsingを使用しています。奇妙なXMLのシンボルでの構文解析

didStartElement代理応答メール

をELEMENTNAMEするとき、私はそれは、電子メールのテキストを取得するためにfoundCharactersに行きますので、一つの要素と呼ばれる.... <Email>[email protected]&t.net</Email>

を持っています。

しかし、foundCharactersのテキスト文字列では、全文ではなく[email protected]になっています。それは特殊文字として&tを考慮しています。そして、それ以来、それはparseErrorOccurred代理人になる理由。

どうすればこのようなエラーを回避できますか。テキストを置き換えるものは何もハードコードできません。電子メールはそのまま印刷する必要があります。

答えて

3

単純に言えば、それは有効なXMLではありません。 &文字をエスケープする必要があります。アンパサンド文字(&)と左アングルブラケット(<

マークアップ区切り文字として使用する場合を除き、そのリテラル形式で表示され、またはコメント、処理命令、またはCDATA内ではいけません。section 2.4 of the XML 1.0 specからセクション。他の場所で必要な場合は、数値文字参照または文字列&amp;&lt;をそれぞれ使用してエスケープする必要があります。

XMLパーサーを使用する場合は、有効なXMLを指定する必要があります。どのような作成されたXMLはに、あなたのためにそれをエスケープしておく必要があります。XMLファイルを作成した何

<Email>[email protected]&amp;t.net</Email> 

?この種のことは、通常、XML APIを使用してXMLを作成するのではなく、文字列からXMLを構築するときに発生します。

1

<Email>[email protected]&t.net</Email>

有効にするには、ジョンが言ったフン、

<Email>[email protected]&amp;t.net</Email>

+0

にエスケープする必要があります。投稿時にブラウザがクラッシュしました。 –