質問

これは非常に単純な問題ですが、解決策が見つかりません。ページ上の非表示の div に XML を書き込み、後でそれを読み取ります。問題は、div に書き込むときに一部の引用符が削除されることです。このため、IE で LoadXML を使用して XML を読み込むことができません。

これはXMLです

<parameters id='XXX'>
<product_id value='YYY'/>
<report_id value='ZZZ'/>
<list>
    <filter_id value='AAA'/>
</list>
<date_begin value='BBB'/>
<date_end value='CCC'/>
<timeframe_id value='DDD'/>
<chart_id value='EEE'/>

さまざまな方法をたくさん使用しましたが、どれも機能しないようです。クロスブラウザの問題を防ぐためにできるだけJQUERYを使用しようとしていますが、どの解決策でも機能します。

上記を使用して、文字列変数 paramString に XML を追加します。

var parametersDiv = "<div id='" + reportDivId + "_params' style='visibility: hidden; display: none'>" + paramString + "</div>";

そしてそれはうまく入ります。

ただし、それを取得しようとすると、IE では XXX の周りの引用符が削除されます。したがって、loadXML() を使用してロードすることはできません。解決策をハッキングすることはできますが、正しく実行したいと考えています。

解決策があれば役立つでしょう。私はこれですでにほぼ1日を無駄にしています。

ありがとう

JD

役に立ちましたか?

解決

二重引用符を使用してみて、それが効果を発揮するかどうかを確認してください。

そうでない場合、問題に対する別の解決策は、XMLHttpRequest(Ajax)を介してXMLを取得することです。

jQuery.ajax({
  url: 'yourUrlThatReturnsXML',
  dataType: 'xml',
  success: function (data, textStatus) {
   $(data); // Your XML
  }
});

他のヒント

これらの非表示の div をページにどのように挿入していますか?おそらく、innerHTML を使用していると思われます (文字列がある場合) が、これは、IE の HTML パーサーを介して渡されていることを意味します。これにより、それが (無効な) HTML に変わり、それを取得しようとすると、属性が引用符で囲まれていないという説明した効果が表示されます (そしておそらく、偶然遭遇しなかった他の副作用も...)まだ)。

最善の策は、返された XML ドキュメント (文字列のシリアル化ではない) への参照を変数に保存することです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top