2017-02-15 14 views
0

我有来自我认证的服务器的响应数据。如何获取XML中的数据

<session session-guid="D39C1215-2F31-8641-E5T2-C7G35RT69127" user-id="34"> </session> 

我怎样才能获得会话GUID和用户ID的值,并将其存储到每个1个变量。

谢谢。

回答

1

在普通的JavaScript在一个现代浏览器,你可以使用document.querySelectorAll()

例如,假设你只有一个session标签:

var session = document.querySelectorAll("session")[0]; 
var session_guid = session.getAttribute("session-guid"); 
var user_id = session.getAttribute("user-id"); 

console.log("session-guid: " + session_guid); 
console.log("user-id: " + user_id); 

如果你有一个以上的会话标签,你可以使用forEach上的querySelectorAll()的结果,找出你想要的。如果您知道只有一个会话元素,则可以使用document.querySelector()而不是document.querySelectorAll()[0]

1

以下是获取客户端值的一种方法。对于这种方法,你需要的任何自定义类添加到您的元素象下面这样:

现在写下面的代码行内标签:

var $mySession = jQuery(document.getElementsByClassName("mySession")); 
for (i = 0; i < $mySession.length; i++) { 
var sessionguid = jQuery($mySession[i]).attr('session-guid'); 
var userid = jQuery($mySession[i]).attr('user-id'); 
console.log(sessionguid); 
console.log(userid); 
} 

您可以检查的“sessionguid”的价值观和“userid”变量在您的浏览器控制台中。

1

以下是您可以从XML获取所需数据的方法。

function getXMLData(xml) { 
     var txt, xmlDoc; 
     //get the responseXML 
     xmlDoc = xml.responseXML; 
     txt = ""; 
     //get all the session nodes 
     var sessions = xmlDoc.getElementsByTagName("session");//this returns a array of nodes 
     for(var i =0;i<sessions.length;i++){ 
      //iterate over nodes and get the attributes 
      txt += sessions[i].getAttribute("session-guid")+"<br />"; 
     } 
     document.getElementById("demo").innerHTML = txt; 
} 

该函数接受响应作​​为参数。然后提取会话节点和必需的属性。您可以根据您的要求进行修改。

这里是一个PLNKR演示为同一

相关问题