团队,任何人都可以帮助我如何使用 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
});
});
});
}