JavaScript中的XML节点深度

时间:2016-09-02 00:03:07

标签: javascript xml

我有一个应用程序,在不事先知道架构的情况下读取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>

0 个答案:

没有答案