0

チーム、javascript/jQuery を使用してサーバーから SOAP 応答からメソッド名を取得する方法を教えてください。メソッド名は固定ではありませんので注意してください。サーバーからの通知ごとに異なります。したがって、クライアント側でメソッドを呼び出す必要があります。jQuery 以外のライブラリは使用したくありません。

例えば)

 <SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
 <SOAP-ENV:Header></SOAP-ENV:Header>
    <SOAP-ENV:Body>
       <m:ActivatedForResponse xmlns:m="http://schemas.velu.com">
          <resultCode>0</resultCode>
       </m:ActivatedForResponse>
    </SOAP-ENV:Body>
 </SOAP-ENV:Envelope>

質問-2
メソッド名(タイトル)がわかっている場合は、以下を試しました。しかし、実際にはメソッド名がわかりません。また、"tittle" を "m:tittle" に置き換えると機能しませんか? ここで何か間違っていますか?

var xml = "<rss><channel><title>MyTitle</title></channel></rss>",
xmlDoc = $.parseXML( xml ),
$xml = $( xmlDoc ),
$title = $xml.find( "title" );

// Please note that i don't want the text; 
// i want to load "title" element itself when it is declared as "m:title" in xml.
alert($title.text());

解決

function Test(){
    xml=loadXMLText("config.xml");
    var $xmlDoc = $(xml),
    $bodyNode = $xmlDoc .find("SOAP-ENV\\:Body");

    $bodyNode.each(function(){ //Iterate mutiple body in different envelope
        $(this).children().each(function(){ //Iterate mutiple remote methods inside the body
            alert($(this).get(0).tagName); // Remote method name
            $(this).children().each(function(){
                alert($(this).prop("tagName")); //attribute name
                alert($(this).text());          //attribute value
            });
        });
    });
}
4

3 に答える 3

0

これにより、表示された xml 文字列のタイトル要素が返されます...

var $title = $(xml).find("title");

実際のテキスト値を取得するには、例のように使用text()します。

于 2013-07-15T11:41:55.733 に答える