0

以下の SOAP/XML 文字列から ItemName と Value のペアを抽出したいと考えています。これを行うためのさまざまな適切な方法を試して、ウェブを調べて頭を悩ませました。私はあきらめて、データを文字列として解析したいだけです。私は XSLT を見てきましたが、SOAP データをより人間が読めるデータに関連付ける必要があるため、すべてを JavaScript 配列に入れる方が良いでしょう。

[私の恐ろしい元の JavaScript コードのチャンクが削除され、適切なコードに置き換えられました。]

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soap:Body>
<ReadResponse xmlns="http://opcfoundation.org/webservices/XMLDA/1.0/">
<ReadResult RcvTime="2012-05-02T13:25:39.484+01:00" ReplyTime="2012-05-02T13:25:39.484+01:00" RevisedLocaleID="en" ServerState="running">    </ReadResult>
<RItemList>
<Items ItemName="_System._DateTime">
    <Value xsi:type="xsd:dateTime">2012-05-02T12:25:38.000+01:00</Value>
    <Quality></Quality>
</Items>
<Items ItemName="_System._ProjectTitle">
    <Value xsi:type="xsd:string">Job2663</Value>
    <Quality></Quality>
</Items>
</RItemList>
</ReadResponse>
</soap:Body>
</soap:Envelope>

//Edited below to include correct code based on Rocket's solution below.
$(soap).find('Items').each(function(){
  console.log($(this).attr('ItemName'), ':', $('Value', this).html());
});

どうもありがとう。

4

1 に答える 1

0

jQueryは使えますか?jQuery は XML を解析し、jQuery メソッドを使用してトラバースできます。

$(soap).find('Items').each(function(){
    console.log($(this).attr('ItemName'), $('Value', this).attr('xsi:type'));
});

デモ: http://jsfiddle.net/JMTHs/

于 2012-05-03T17:01:34.053 に答える