如何访问SOAP响应属性?

所有

最近几天我找到了如何使用JS访问soap,毕竟我从这个链接得到了解决方案Simplest SOAP示例

现在我能够提醒我的肥皂请求。 但我想使用它的属性,并希望打印响应(我的意思是解析响应和显示)

这是我的代码

var xmlhttp = new XMLHttpRequest(); xmlhttp.open("POST", "http://service.project-development-site.de/soap.php",true); xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState == 4) { alert(xmlhttp.responseText); // http://www.terracoder.com convert XML to JSON var json = XMLObjectifier.xmlToJSON(xmlhttp.responseXML); var result = json.Body[0].GetQuoteResponse[0].GetQuoteResult[0].Text; // Result text is escaped XML string, convert string to XML object then convert to JSON object json = XMLObjectifier.xmlToJSON(XMLObjectifier.textToXML(result)); alert(symbol + ' Stock Quote: $' + json.Stock[0].Last[0].Text); } } xmlhttp.setRequestHeader("SOAPAction", "http://service.project-development-site.de/soap.php"); xmlhttp.setRequestHeader("Content-Type", "text/xml"); var xml = '' + '' + ''+ ''+ ''+ 'user'+ 'pwd'+ 'acktoken'+ ''+ ''+ ''; xmlhttp.send(xml); 

我得到了这样的警报响应

     0 OK SOAP request executed successfully .   accesToken ACK     

我想显示这个响应属性,如errorShortDesc,errorLongDesc等……我怎么样?

提前致谢

尝试使用这种方式

 var xmlResponse =xmlhttp.responseXML.documentElement; var fullNodeList = xmlResponse.getElementsByTagName("loginUserSoapOutPart"); for (var i=0; i < fullNodeList.length; i++) { var eachnode = new Option(); eachnode.text = fullNodeList[i].childNodes[0].nodeValue; eachnode.value = fullNodeList[i].attributes[0].value; } 

jQuery从1.5添加了一个parseXML实用程序,用于将字符串解析为XML,然后相应地访问您的节点

在您的示例中,您可以按如下方式使用它,以便response是服务器的响应:

  var xmlDoc = $.parseXML( response ), $xml = $( xmlDoc ), $value= $xml.find( "errorShortDesc" ); //do what you want with the value console.log($value.text()); 
Interesting Posts