2012-02-06 9 views
0

プロセス中に "&"のような5つの特殊文字が挿入されるxmlファイルがあります。これらの文字の解析中にxmlがエラーをスローすることがあります.jQuery ajaxメソッドを使用してxmlファイルからデータを取得します。特殊文字を置き換えるようなjavascriptでこのパーサーエラーを克服する方法はありますか?jQueryを使用してxmlファイルの "&"をエスケープまたは置換する方法はありますか?

+0

http://stackoverflow.com/questions/24816/escaping-html-strings-with-jqueryは、あなたの答えを持っているようです。 – deltree

+1

サーバーが不正な形式のXMLを返すと言っていますか?もしそうなら、それをサーバーで修正したいでしょう。そうでない場合、私は質問を理解していません –

+0

@DMosesこれはあまりにも愚かな音がすることを知っている、と私はこの種の質問をしてはいけません。サーバーは、notpadからの不正なXML、不正な形式のXMLをjavascriptで修正することは可能ですか?私は答えがNOであることを知っています、ちょうど解決策があるかどうかチェックしたいと思っていました。 – manraj82

答えて

2

要するに、XMLを文字列として取得すると仮定します(正しくリコールすると、jQueryが行います)。次に、次の操作を実行できます。

xmlstr = xmlstr.replace(/&/g, "&"); 

置き換えたい文字は次のとおりです。

+0

。ありがとうございました! –

1

のは、ユーザ入力にこのましょう:

<foo> &gt;bar&lt; hi & bye &gt;/bar&lt; 

今、彼らはおそらく意味:

<foo> &gt;bar&lt; hi &amp; bye &gt;/bar&lt; </foo> 

しかし、彼らは意図している可能性:

<foo> &amp;gt;bar&amp;lt; hi &amp; bye &amp;gt;/bar&amp;lt; </foo> 

あなたはクリーンアップとサニタイズすることができますがクローズされていないタグを閉じて&をエスケープすることにより、整形式XMLであるべきテキスト。私はあなたのためにこれを行う任意のjavascriptライブラリに精通していない。

+0

これは素晴らしい点です – Mala

0
XMLText = XMLText.Replace("&", "&amp;"); 
XMLText = XMLText.Replace("""", "&quot;"); 
XMLText = XMLText.Replace("'", "&apos;"); 
XMLText = XMLText.Replace("<", "&lt;"); 
XMLText = XMLText.Replace(">", "&gt;"); 
return XMLText; 
関連する問題