チーム、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
});
});
});
}