2013-05-05 65 views
0
  1. 我是否需要將響應從servlet(xml)轉換爲xmlDoc,以便解析和檢索某些值的 ?
  2. 如果是,那麼下面的代碼是否正確? console.log(id);打印一個函數,因此引發TypeError。如果沒有,那該怎麼辦呢?
function xmlParser(xmlResponse) { 
    if (window.DOMParser) { 
     parser = new DOMParser(); 
     console.log(xmlResponse); 
     xmlDoc = parser.parseFromString(xmlResponse, "text/xml"); 
     console.log(xmlDoc); 
    } 
    id = xmlDoc.getElementsByTagName("id")[0].childNodes[0].nodeValue; 
    console.log(id); 
    key = xmlDoc.getElementsByTagName("passkey")[0].childNodes[0].nodeValue; 
    console.log(key); 
    return format(id, key); 
} 

回答

0

不,你不需要轉換的響應,因爲你可以通過responseXML財產得到xmlDoc直接。

例子:

xmlDoc = xmlResponse.responseXML; // you'll probably need to change it because I don't know what is value of xmlResponse in your case 
id = xmlDoc.getElementsByTagName("id")[0].childNodes[0].nodeValue; 
//and so on... 
+0

的內容類型從服務器的響應必須是「text/xml」的或你的responseXML屬性將是無效的。 – Ben 2013-05-05 10:39:46

+0

我刪除了轉換代碼。我從servlet發送xml。但仍然得到'Uncaught TypeError:無法讀取屬性'childNodes'undefined' – John 2013-05-05 11:10:34

+0

我的壞...它解決了 – John 2013-05-05 11:20:53