9

AJAX 経由で XML ストリームを取得して解析する JavaScript ルーチンがあります。FF と Chrome では問題なく動作しますが、IE 9 では、ノード内に連続する改行がある場合、IE はそれらをスペースと 1 つの改行に圧縮します。

具体的には、retNode が xml ノードの場合、retNode.text には IE では圧縮された空白が含まれていますが、FF と Chrome ではすべての文字が含まれています。

XML を解析する独自のルーチンを作成しようとしましたが、それは脆弱で時間の無駄に思えます。PreserveWhitespace プロパティを使用してみましたが、javascript では使用できないようです。retNode.text の代わりに retNode.nodeValue を使用しようとしましたが、nodeValue に値がありませんでした。

jquery を知らないので、jquery を使用しないソリューションを希望します。また、jquery を機能させるために追加する必要がある他のコードもわかりません。

前もって感謝します!

4

2 に答える 2

1

preserveWhiteSpaceJavaScript で利用できます。

次のコードを試しましたか?

var xhr = new XMLHttpRequest();
xhr.responseXML.preserveWhiteSpace = true;
…
于 2012-11-16T09:59:01.963 に答える
0

失っているタグ間の空白のみにする必要があります。タグ以外の間 (タグのペア内の文字列の間など) の空白は、常に保持する必要があります。

言い換えれば、変更されないまま<tag> </tag>になりますが<tag></tag>、なります。<tag>foo bar</tag>

2 つのタグの間の空白を保持する必要があり、何らかの理由でうまくいかない場合は、可能であれば XML ソースを挿入する必要があるpreserveWhiteSpaceと思います(数値バージョンは、.通常の状況では、つまり、エンティティを定義していない限り、不正な XML 文字)&#160;&nbsp;

于 2012-12-20T21:51:33.687 に答える