我用下面的解析器解析XMLXML的Javascript解析問題(具體代碼問題)
function parseXML(text) {
var doc;
if(window.DOMParser) {
var parser = new DOMParser();
doc = parser.parseFromString(text, "text/xml");
}
else if(window.ActiveXObject) {
doc = new ActiveXObject("Microsoft.XMLDOM");
doc.async = "false";
doc.loadXML(text);
}
else {
throw new Error("Cannot parse XML");
}
return doc;
}
我不明白爲什麼它不在我的XML文檔,通過AJAX獲得工作。通過AJAX請求
結果:
X-Powered-By PHP/5.2.11
Content-Length 887
Keep-Alive timeout=5, max=95
Connection Keep-Alive
Content-Type text/xml
<?xml version="1.0" encoding="UTF-8"?>
<xml_test>wont work!</xml_test>
測試代碼:
var xml = parseXML(data);
$(xml).find("xml_test").each(function()
{
console.info('found xml_test... never happen..');
});
但如果我這樣使用它它很好地工作!
var data = '<xml_test>works</xml_test>';
var xml = parseXML(data);
$(xml).find("xml_test").each(function()
{
alert('this works!');
});
我知道,這是一個具體的問題,但我會感謝您的幫助和/或建議...
在此先感謝 佩德羅
我的猜測是,你試圖通過已經被解析XML(如responseXML的文檔或東西)。你可以顯示初始化數據變量的代碼在這裏傳遞嗎? var xml = parseXML(data);每個(函數() console.info('found xml_test ... never happen ..'); }); – 2010-09-30 13:33:55
也許這個問題與 有關doc = parser.parseFromString(text,「text/xml」); ?! – 2010-09-30 13:34:06
謝爾蓋, $阿賈克斯({ 網址: '...' 類型: 'POST', 數據類型: 'XML', 數據:formulario.serialize(), 超時:15000, 成功:功能(data){.........} – 2010-09-30 13:38:13