$.ajax
データベースからデータを JSON オブジェクトとして返すために使用しています。フィールドの 1 つは有効な XML です (SQL Server の XML フィールドに格納されています)。XML データの抽出に使用$.parseXML
すると、IE (バージョン 9) では問題なく動作しますが、Firefox や Chrome ではうまくいきません。
Google 検索に基づいて contentType の XML データを text/XML として返すだけで、2 つの個別のクエリを実行する必要があるかもしれないと考えています。現在、$.ajax
.ashx ハンドラー ファイルの contentType と同様に、returnType は JSON です (そうです、ASP アプリケーションです)。
誰かがここで洞察を提供できますか?
前もって感謝します、デビッド
サンプル:
function ParseXMLRecord(record) {
var xmlDoc = $.parseXML(record);
var $xml = $(xmlDoc);
var Questions = $xml.find("Question");
for (var x = 0; x < Questions.length; x++) {
var test = Questions[x];
for (var t = 0; t < Questions[x].childNodes.length; t++) {
if (Questions[x].childNodes[t].tagName == 'Response') {
var controlId = '', value = '';
for (var g = 0; g < Questions[x].childNodes[t].childNodes.length; g++) {
var tagname = Questions[x].childNodes[t].childNodes[g].tagName;
if (tagname === 'Control') {
fails on firefox --> controlId = Questions[x].childNodes[t].childNodes[g].text;
...
================================================== ====================================
これは別の方法です。解析する必要がある XML は次のとおりです。
<ResponseSet>
<Question>
<Text>Laterality</Text>
<Response>
<Control>rbLateralityLft</Control>
<Value>Left</Value>
</Response>
</Question>
等...
上記に基づいて、この行は Firefox では機能しません。
controlId = Questions[x].childNodes[t].childNodes[g].text; // これでもない --> Questions[x].childNodes[t].childNodes[g].nodeTypedValue