この投稿のサンプル XML のすべての属性 (名前に関係なく) を繰り返し処理し、JQuery を使用して 2D の「配列の配列」を作成する必要があります。
Microsoft の CAML クエリ言語を使用して、SharePoint リストから属性を返しています。オブジェクトに読み込まれる XML として返されます。返される XML は次のとおりです。
<?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="3">
<z:row ows_Attachments="0" ows_LinkTitle="Apple" ows_Color="Red" ows_Quantity="3.00000000000000" ows_Quantity2="5.00000000000000" ows_MetaInfo="1;#" ows__ModerationStatus="0" ows__Level="1" ows_Title="Apple" ows_ID="1" ows_UniqueId="1;#{FEDE3004-A0F4-421F-A76B-5BD51003B11C}" ows_owshiddenversion="2" 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-05 13:59:06" ows_FileRef="1;#Sandbox/bitest/Lists/Produce/1_.000"/>
<z:row ows_Attachments="0" ows_LinkTitle="Orange" ows_Color="Orange" ows_Quantity="5.00000000000000" ows_Quantity2="3.00000000000000" ows_MetaInfo="2;#" ows__ModerationStatus="0" ows__Level="1" ows_Title="Orange" ows_ID="2" ows_UniqueId="2;#{1E40887F-87BF-4029-93A3-A1096DF1D1A7}" ows_owshiddenversion="2" 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-05 13:59:08" ows_FileRef="2;#Sandbox/bitest/Lists/Produce/2_.000"/>
<z:row ows_Attachments="0" ows_LinkTitle="Corn" ows_Color="Yellow" ows_Quantity="9.00000000000000" ows_Quantity2="19.0000000000000" ows_MetaInfo="3;#" ows__ModerationStatus="0" ows__Level="1" ows_Title="Corn" ows_ID="3" ows_UniqueId="3;#{3873272A-61AA-49C0-B5D2-A228388ADE27}" ows_owshiddenversion="5" ows_FSObjType="3;#0" ows_Created_x0020_Date="3;#2012-08-01 19:24:57" ows_Created="2012-08-01 19:24:57" ows_FileLeafRef="3;#3_.000" ows_PermMask="0x7fffffffffffffff" ows_Modified="2012-08-08 13:58:38" ows_FileRef="3;#Sandbox/bitest/Lists/Produce/3_.000"/>
</rs:data>
</listitems></GetListItemsResult></GetListItemsResponse></soap:Body></soap:Envelope>
この xml は「不適切な形式」のように見えるため、2D 配列で使用するために属性を反復処理するのに問題があります。StackOverflow に関する別の投稿があり、希望が持てました。XML の形式が整っていないため、機能していないようです。
これらの属性すべてを配列の配列 (子ノードごとに 1 つの配列)にロードできるようにする、このデータを処理するためのより良い方法があれば、ぜひ聞いてみたいと思います。私はこれにかなり慣れており、将来的にさまざまな CAML クエリで機能するシンプルなものを見つけたいと考えています。
-------------------------------------- 編集・新着情報--------------------- -----------------------
新しい質問を投稿する前に、この質問に情報を追加させてください。
リストされたすべての属性から動的に 2D 配列を作成することをややあきらめました。私自身と別の人はそれを機能させることができませんでした。毎回カスタム配列を作成する必要があるようです。
私の新しい関連する質問: この SOAP エンベロープからすべての "Quantity2" エントリを取得したいとしましょう。
JavaScript / JQueryを使用して各行エントリを反復処理し、各行に1つの値を返す最良の方法は何ですか? 現在使用しているコード サンプルを提供できます。動作しますが、XML のデータ値によって混乱するのではないかと心配しています。
$(xData.responseXML).find("z\\:row").each(function() {
quantityOneArray[i] = parseFloat($(this).attr("ows_Quantity"));
quantityTwoArray[i] = parseFloat($(this).attr("ows_Quantity2"));
i++
});
この例のような DOM 要素を使用することをお勧めします (これは有効ではありません)。
for each $(this).childnode(function(){
どんな考えでも大歓迎です!