我有一个应用程序,在不事先知道架构的情况下读取XML文件。它是在PHP中,我使用以下简单代码来读取和循环每个元素:
$reader = new XMLReader();
$reader->open($fname);
while ($reader->read()) {
$depth = $reader->depth;
}
这将逐个引导我浏览文件的每个元素。然后,我获得深度,并在给定我具有每个节点的深度元素的情况下正确缩进XML文件的图形表示。
我想在JS中这样做,但我似乎无法弄清楚如何。 下面的代码循环遍历所有XML元素,但我无法检索深度元素。我可以得到节点名称,类型和值,但不是深度...谢谢!
<!DOCTYPE html>
<html>
<body>
<p id="demo"></p>
<script>
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
myFunction(this);
}
};
xhttp.open("GET", "books.xml", true);
xhttp.send();
function myFunction(xml) {
var x, i, xmlDoc, txt;
xmlDoc = xml.responseXML;
txt = "";
x = xmlDoc.documentElement.childNodes;
for (i = 0; i < x.length; i++) {
if (x[i].nodeType == 1) {
txt += x[i].nodeName + "<br>";
}
}
document.getElementById("demo").innerHTML = txt;
}
</script>