Javascript 显示XML文件中的数据

Javascript 显示XML文件中的数据,javascript,html,xml,Javascript,Html,Xml,我正在尝试使用JavaScript显示XML文件中的数据。我的数据没有显示在网页上,我不知道为什么 如有任何帮助/建议,将不胜感激。我的代码显示在下面 注意-我没有XML方面的经验,所以请注意,我对它是完全陌生的 <script> var xmlData; function loadXml () { var filename = "CDLibrary.xml"; var XMLhttp = new XMLHttpRequest();

我正在尝试使用JavaScript显示XML文件中的数据。我的数据没有显示在网页上,我不知道为什么

如有任何帮助/建议,将不胜感激。我的代码显示在下面

注意-我没有XML方面的经验,所以请注意,我对它是完全陌生的

 <script>
    var xmlData;
    function loadXml () {
        var filename = "CDLibrary.xml";
        var XMLhttp = new XMLHttpRequest();
        XMLhttp.open("GET", filename, true);
        var ok = true;
        try {
            XMLhttp.send();
        }
        catch(err) {
            ok = false;
            alert ("Database not found");
        }
        if (ok) {
            xmlData = XMLhttp.responseXML;
            displayXml(xmlData);
        }
    }
    function displayXml () {
        var CdElements;
        var CdTitle;
        var count;
        CdElements = xmlData.getElementsByTagName("CD");
        for (count = 0; count < CdElements.length; count=count+1) {
            CdTitle = CdElements[count].getElementsByTagName("title");
            document.getElementById("output").innerHTML = document.getElementById("output").innerHTML + CdTitle[0].childNodes[0].nodeValue + "</br>";
        }
    }
 </script>

</head>

<body>
    <div>
        <p id="output">
        </p>
        <p id="buttons">
            <input type="button" id="btnDisplay" value="Display CDs" onclick="loadXml();">
    </div>
</body>

var-xmlData;
函数loadXml(){
var filename=“CDLibrary.xml”;
var XMLhttp=new XMLHttpRequest();
open(“GET”,文件名,true);
var-ok=true;
试一试{
XMLhttp.send();
}
捕捉(错误){
ok=假;
警报(“未找到数据库”);
}
如果(确定){
xmlData=XMLhttp.responseXML;
显示xml(xmlData);
}
}
函数displayXml(){
风险价值要素;
var-CdTitle;
var计数;
CdElements=xmlData.getElementsByTagName(“CD”);
对于(计数=0;计数”;
}
}


导入XML数据

var-xmlData; 函数loadXml(){ var filename=“CDLibary.xml”; var XMLhttp=new XMLHttpRequest(); open(“GET”,文件名,true); var-ok=true; 试一试{ XMLhttp.send(); } 捕捉(错误){ ok=假; 警报(“未找到数据库”); } 如果(确定){ xmlData=XMLhttp.responseXML; 显示xml(xmlData); } } 函数displayXml(xmlDataBase){ 风险价值要素; var-CdTitle; var计数; CdElements=xmlDataBase.getElementsByTagName(“CD”); 对于(计数=0;计数”; } }


导入XML数据

var-xmlData; 函数loadXml(){ var filename=“CDLibary.xml”; var XMLhttp=new XMLHttpRequest(); open(“GET”,文件名,true); var-ok=true; 试一试{ XMLhttp.send(); } 捕捉(错误){ ok=假; 警报(“未找到数据库”); } 如果(确定){ xmlData=XMLhttp.responseXML; 显示xml(xmlData); } } 函数displayXml(xmlDataBase){ 风险价值要素; var-CdTitle; var计数; CdElements=xmlDataBase.getElementsByTagName(“CD”); 对于(计数=0;计数”; } }


您没有使用var xmlData,而是使用var xmlDataBase。将代码替换为:

CdElements = xmlData.getElementsByTagName("CD");

由于您使用的是全局var xmlData,它在displayXml函数中可用,在这种情况下,如果您使用函数displayXml(),就不需要函数displayXml(xmlDataBase),这就足够了。

您使用的不是var xmlData,而是var xmlDataBase。将代码替换为:

CdElements = xmlData.getElementsByTagName("CD");

由于您使用的是全局var xmlData,它在displayXml函数中可用,在这种情况下,如果您使用函数displayXml(),就不需要函数displayXml(xmlDataBase),这就足够了。

使用w3schools链接并更改一些信息和目录,我让它工作起来了。我遵循的模板中一定有错误,谢谢大家的时间和努力

  <html>
  <style>
  table,th,td {
    border : 1px solid black;
    border-collapse: collapse;
    }
    th,td {
    padding: 5px;
    }
    </style>
    <body>


 <button type="button" onclick="loadDoc()">Get my CD collection</button>
 <br><br>
 <table id="demo"></table>

  <script>
  function loadDoc() {
  var xhttp = new XMLHttpRequest();
   xhttp.onreadystatechange = function() {
   if (this.readyState == 4 && this.status == 200) {
    myFunction(this);
   }
   };
   xhttp.open("GET", "CDLibrary.xml", true);
   xhttp.send();
    }
   function myFunction(xml) {
   var i;
   var xmlDoc = xml.responseXML;
   var table="<tr><th>Artist</th><th>Title</th></tr>";
   var x = xmlDoc.getElementsByTagName("CD");
   for (i = 0; i <x.length; i++) {
   table += "<tr><td>" +
   x[i].getElementsByTagName("performer")[0].childNodes[0].nodeValue +
   "</td><td>" +
   x[i].getElementsByTagName("title")[0].childNodes[0].nodeValue +
   "</td></tr>";
    }
    document.getElementById("demo").innerHTML = table;
    }
    </script>

    </body>
    </html>

表,th,td{
边框:1px纯黑;
边界塌陷:塌陷;
}
th,td{
填充物:5px;
}
获取我的CD收藏


函数loadDoc(){ var xhttp=newXMLHttpRequest(); xhttp.onreadystatechange=函数(){ if(this.readyState==4&&this.status==200){ 我的职能(本); } }; open(“GET”,“CDLibrary.xml”,true); xhttp.send(); } 函数myFunction(xml){ var i; var xmlDoc=xml.responseXML; var table=“ArtistTitle”; var x=xmlDoc.getElementsByTagName(“CD”);
对于(i=0;i使用w3schools链接并更改某些信息和目录,我使其正常工作。我所遵循的模板中一定有错误,谢谢大家的时间和努力

  <html>
  <style>
  table,th,td {
    border : 1px solid black;
    border-collapse: collapse;
    }
    th,td {
    padding: 5px;
    }
    </style>
    <body>


 <button type="button" onclick="loadDoc()">Get my CD collection</button>
 <br><br>
 <table id="demo"></table>

  <script>
  function loadDoc() {
  var xhttp = new XMLHttpRequest();
   xhttp.onreadystatechange = function() {
   if (this.readyState == 4 && this.status == 200) {
    myFunction(this);
   }
   };
   xhttp.open("GET", "CDLibrary.xml", true);
   xhttp.send();
    }
   function myFunction(xml) {
   var i;
   var xmlDoc = xml.responseXML;
   var table="<tr><th>Artist</th><th>Title</th></tr>";
   var x = xmlDoc.getElementsByTagName("CD");
   for (i = 0; i <x.length; i++) {
   table += "<tr><td>" +
   x[i].getElementsByTagName("performer")[0].childNodes[0].nodeValue +
   "</td><td>" +
   x[i].getElementsByTagName("title")[0].childNodes[0].nodeValue +
   "</td></tr>";
    }
    document.getElementById("demo").innerHTML = table;
    }
    </script>

    </body>
    </html>

表,th,td{
边框:1px纯黑;
边界塌陷:塌陷;
}
th,td{
填充物:5px;
}
获取我的CD收藏


函数loadDoc(){ var xhttp=newXMLHttpRequest(); xhttp.onreadystatechange=函数(){ if(this.readyState==4&&this.status==200){ 我的职能(本); } }; open(“GET”,“CDLibrary.xml”,true); xhttp.send(); } 函数myFunction(xml){ var i; var xmlDoc=xml.responseXML; var table=“ArtistTitle”; var x=xmlDoc.getElementsByTagName(“CD”); 对于(i=0;我尝试使用这个,但是