当 XML 内容作为 XML 文件接收时,使用 Ajax 和 Javascript 加载 XML 数据

Load XML data using Ajax and Javascript when XML content is received as XML file

我试图通过首先获取 xml 文件的内容并将其存储在 XML DOM 中来显示 xml 文件中的数据。一旦 DOM 对象被创建,它就会被解析。我使用了一个 for 循环来从父节点的每个子节点获取数据,但不知何故只显示了第二个节点的数据。

这是错误所在的代码:

    xmlhttp.open("GET","company.xml", false); //sets the request for calling company.xml
    xmlhttp.send(); //sends the request

    xmlDoc = xmlhttp.responseXML; //sets and returns the content as XML DOM

    //parsing the DOM object

    var employeeCount = xmlDoc.getElementsByTagName("Employee");

    for(i=0; i<employeeCount.length; i++)
    {
        document.getElementById("firstName").innerHTML = xmlDoc.getElementsByTagName("FirstName")[i].childNodes[0].nodeValue;
        document.getElementById("lastName").innerHTML = xmlDoc.getElementsByTagName("LastName")[i].childNodes[0].nodeValue;
        document.getElementById("contactNum").innerHTML = xmlDoc.getElementsByTagName("ContactNo")[i].childNodes[0].nodeValue;
    }

XML 文件:

<?xml version="1.0"?>
<Company>
<Employee category="technical">
<FirstName>Tanmay</FirstName>
    <Nickname>Tania</Nickname>
<LastName>Patil</LastName>
<ContactNo>1234567890</ContactNo>
</Employee>
<Employee category="non-technical">
<FirstName>Taniya</FirstName>
<LastName>Mishra</LastName>
<ContactNo>1234667898</ContactNo>
</Employee>
</Company>

这是输出:

我怎样才能同时显示来自节点 [0] 的数据?任何建议将不胜感激。谢谢。

问题是您在每次迭代时都会覆盖之前 Employee 的数据:

for(i=0; i<employeeCount.length; i++)
{
    document.getElementById("firstName").innerHTML = xmlDoc.getElementsByTagName("FirstName")[i].childNodes[0].nodeValue;
    document.getElementById("lastName").innerHTML = xmlDoc.getElementsByTagName("LastName")[i].childNodes[0].nodeValue;
    document.getElementById("contactNum").innerHTML = xmlDoc.getElementsByTagName("ContactNo")[i].childNodes[0].nodeValue;
}

这就是为什么最后 Employee 的数据最后留在了 innerHTMLs 中。