2017-02-15 55 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演示爲同一