1

JQuery は、返された XML 文字列内でセレクター文字列を見つけることができないようです。Chrome では動いているようですが、ブラウザ認証の問題で同じ環境ではデバッグできません。

過去にこの種の質問があったことは知っていますが、私の状況に特に当てはまるものは見つかりませんでした。

次の XML 応答は、SOAP 要求から提供されます。ここで重要なのは作品だと思い<z:rowます:

"<?xml version="1.0"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><GetListItemsResponse xmlns="http://schemas.microsoft.com/sharepoint/soap/"><GetListItemsResult><listitems xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema">
                <rs:data ItemCount="6">
                    <z:row ows_Attachments="0" ows_Year="2012" ows_LinkTitle="Orange" ows_Quantity="3.00000000000000" ows_Quantity2="5.00000000000000" ows_Color="Orange" ows__ModerationStatus="0" ows__Level="1" ows_Title="Orange" ows_ID="1" ows_UniqueId="1;#{FEDE3004-A0F4-421F-A76B-5BD51003B11C}" ows_owshiddenversion="8" ows_FSObjType="1;#0" ows_Created_x0020_Date="1;#2012-08-01 19:24:08" ows_Created="2012-08-01 19:24:08" ows_FileLeafRef="1;#1_.000" ows_PermMask="0x7fffffffffffffff" ows_Modified="2012-08-15 11:15:41" ows_FileRef="1;#Sandbox/bitest/Lists/Produce/1_.000" ows_MetaInfo="1;#"/>
                    <z:row ows_Attachments="0" ows_Year="2012" ows_LinkTitle="Apple" ows_Quantity="5.00000000000000" ows_Quantity2="9.00000000000000" ows_Color="Red" ows__ModerationStatus="0" ows__Level="1" ows_Title="Apple" ows_ID="2" ows_UniqueId="2;#{1E40887F-87BF-4029-93A3-A1096DF1D1A7}" ows_owshiddenversion="8" ows_FSObjType="2;#0" ows_Created_x0020_Date="2;#2012-08-01 19:24:42" ows_Created="2012-08-01 19:24:42" ows_FileLeafRef="2;#2_.000" ows_PermMask="0x7fffffffffffffff" ows_Modified="2012-08-15 11:15:42" ows_FileRef="2;#Sandbox/bitest/Lists/Produce/2_.000" ows_MetaInfo="2;#"/>
                    <z:row ows_Attachments="0" ows_Year="2011" ows_LinkTitle="Orange" ows_Quantity="4.00000000000000" ows_Quantity2="9.00000000000000" ows_Color="Orange" ows__ModerationStatus="0" ows__Level="1" ows_Title="Orange" ows_ID="4" ows_UniqueId="4;#{D3C73386-1EA5-435A-BD1A-EF67F719078F}" ows_owshiddenversion="7" ows_FSObjType="4;#0" ows_Created_x0020_Date="4;#2012-08-15 11:13:23" ows_Created="2012-08-15 11:13:23" ows_FileLeafRef="4;#4_.000" ows_PermMask="0x7fffffffffffffff" ows_Modified="2012-08-15 11:15:36" ows_FileRef="4;#Sandbox/bitest/Lists/Produce/4_.000" ows_MetaInfo="4;#"/>
                    <z:row ows_Attachments="0" ows_Year="2011" ows_LinkTitle="Apple" ows_Quantity="8.00000000000000" ows_Quantity2="12.0000000000000" ows_Color="Red" ows__ModerationStatus="0" ows__Level="1" ows_Title="Apple" ows_ID="5" ows_UniqueId="5;#{13F99513-8DE1-48A9-9114-40E5A8B2343F}" ows_owshiddenversion="6" ows_FSObjType="5;#0" ows_Created_x0020_Date="5;#2012-08-15 11:13:59" ows_Created="2012-08-15 11:13:59" ows_FileLeafRef="5;#5_.000" ows_PermMask="0x7fffffffffffffff" ows_Modified="2012-08-15 11:15:27" ows_FileRef="5;#Sandbox/bitest/Lists/Produce/5_.000" ows_MetaInfo="5;#"/>
                    <z:row ows_Attachments="0" ows_Year="2010" ows_LinkTitle="Orange" ows_Quantity="2.00000000000000" ows_Quantity2="6.00000000000000" ows_Color="Orange" ows__ModerationStatus="0" ows__Level="1" ows_Title="Orange" ows_ID="6" ows_UniqueId="6;#{A6DBFD00-6383-4993-9C9E-4398E080FDEE}" ows_owshiddenversion="6" ows_FSObjType="6;#0" ows_Created_x0020_Date="6;#2012-08-15 11:14:05" ows_Created="2012-08-15 11:14:05" ows_FileLeafRef="6;#6_.000" ows_PermMask="0x7fffffffffffffff" ows_Modified="2012-08-15 11:15:38" ows_FileRef="6;#Sandbox/bitest/Lists/Produce/6_.000" ows_MetaInfo="6;#"/>
                    <z:row ows_Attachments="0" ows_Year="2010" ows_LinkTitle="Apple" ows_Quantity="10.0000000000000" ows_Quantity2="2.00000000000000" ows_Color="Red" ows__ModerationStatus="0" ows__Level="1" ows_Title="Apple" ows_ID="7" ows_UniqueId="7;#{2F1BD539-545A-4796-AC1D-A9C4B76BE253}" ows_owshiddenversion="4" ows_FSObjType="7;#0" ows_Created_x0020_Date="7;#2012-08-15 11:14:58" ows_Created="2012-08-15 11:14:58" ows_FileLeafRef="7;#7_.000" ows_PermMask="0x7fffffffffffffff" ows_Modified="2012-08-15 11:15:28" ows_FileRef="7;#Sandbox/bitest/Lists/Produce/7_.000" ows_MetaInfo="7;#"/>
                </rs:data>
            </listitems></GetListItemsResult></GetListItemsResponse></soap:Body></soap:Envelope>

"

次のルーチンは、この応答を反復処理して関連する値を見つけるように設計されています。xData.XML が空であるかのように完全に実行に失敗します (xData.xml も試しましたが、変更はありません)。

$(xData.XML).find("z\\:row").each(function() {
           quantityOneArray[i] = parseFloat($(this).attr("ows_Quantity"));
           quantityTwoArray[i] = parseFloat($(this).attr("ows_Quantity2"));
           i++;
           alert("xData "+ i + ": "+xData.XML);
    });

これは、いくつかのウォッチを含む IE8 デバッガーウィンドウのスクリーンショットへのリンクです。xData.xml文字列が強調表示されます。このブレークポイントは、上記の反復ルーチンの直前にあります。

  • セレクターの形式が正しくありませんか?
  • セレクターに追加のエスケープが必要ですか?
  • 間違った戻り値またはオブジェクトを見ていますか?

私はここで絶対に髪を抜いています。Chromeでセレクターを「行」に変更しましたが、機能します。IE8では違いはありません。

また、このブログ投稿を見て、実際の例を確認してください。最初は「xData.responseXML」を使用していましたが、デバッガーで「未定義」と表示されました。

4

2 に答える 2

0

これを試して、

クロム/ファイアフォックス:

xml.children[0].childNodes[1].innerHTML

IE8+/サファリ:

xml.childNodes[0].childNodes[1].textContent

IE8:

xml.documentElement.childNodes[1].text;

サンプルコードはこちら

var xml = $.parseXML(XMLDOC);

Var xmlNodeValue = "";

if(userAgent.match("msie 8.0")){

xmlNodeValue = xml.children[0].childNodes[1].innerHTML;

}else{ // IE8+

xmlNodeValue = xml.childNodes[0].childNodes[1].textContent;

}

于 2015-02-21T11:09:37.733 に答える