這有點奇怪。我在不同的電腦上運行這個腳本,得到了不同的結果。 在一臺計算機中,此代碼可以正常工作,但在另一臺計算機中無效。這是我的js代碼:爲什麼XMLHttpRequest返回null?
xmlDoc = loadXmlDoc();
printSubClassOf();
function loadXmlDoc(){
var xmlDom = null;
var xhttp = new XMLHttpRequest();
xhttp.open("GET", "resto.owl", false);
xhttp.send(null);
xmlDom = xhttp.responseXML;
return xmlDom;
}
function printSubClassOf(){
a = xmlDoc.getElementsByTagName("SubClassOf");
for(i = 0; i < a.length; i++){
b = xmlDoc.getElementsByTagName("SubClassOf")[i].childNodes;
for(j = 0; j < b.length; j++){
c = xmlDoc.getElementsByTagName("SubClassOf")[i].childNodes[j];
document.write(i + " " + j + " " + c.nodeName + "<br>");
}
}
}
這是我試圖解析的XML。
<Ontology>
<SubClassOf>
<Class IRI="#Chef"/>
<Class IRI="#Employee"/>
</SubClassOf>
<SubClassOf>
<Class IRI="#Customer"/>
<Class IRI="#People"/>
</SubClassOf>
</Ontology>
我使用了Chrome開發人員工具來查看發生了什麼事情。有200個狀態代碼的XHR請求,但仍然有這個錯誤。
a = xmlDoc.getElementsByTagName("SubClassOf");
Uncaught TypeError: Cannot call method 'getElementsByTagName' of null
我覺得printSubClassOf()
結束loadXmlDoc()
返回XML之前。你怎麼看?以及如何解決這個問題?僅供參考:我在本地主機上運行這個。
@bfavaretto我剛剛編輯了我的問題,謝謝你的澄清。 – shankshera
我試過了你發佈的代碼,它工作。你正在嘗試完全相同的代碼,還是不同的東西? – bfavaretto