使用“count”将数据从xml解析为表html

时间:2017-04-13 11:00:23

标签: jquery html ajax xml xml-parsing

我知道这个话题很老。我正在学习并试图解析,但不知道如何在我的情况下这样做。你们能告诉我这样做的方法还是更好地帮助我一两个价值观?

<Metainformation>
    <cash>ABC XYZ</cash>
    <Doctor>Dr. Peter Smith</Doctor>
    <DoctorID>12345678</DoctorID>
    <Quartal>Q22004</Quartal>
    <Checkdate>20040404123000</Checkdate>
</Metainformation>
<Patientlist>
    <Normal_Patient>
        <Unchanged count="123"/>
        <New count="3"/>
        <Closed count="2"/>
        <InTest count="4"/>
    </Normal_Patient>
    <Special_Patient>
        <Special_Quantity count="8" />
    </Special_Patient>
    <Notfound_Patient>
        <ABC_available count="9" />
        <DEF_available count="7" />
    </Notfound_Patient> 
    <Total old="125" new="126"/>
</Patientlist>

我的桌子在这里: https://jsfiddle.net/n9ygoL52/

1 个答案:

答案 0 :(得分:1)

好的,我们假设您在html存在的同一目录中有一个名为infos.xml的文件。

我将向您展示的这种模式需要为每个td设置ID。例如

<td>Cash</td>
<td id="cash"> </td>

<td>Doctor</td>
<td id="doctor"> </td>

<td>Quartal</td>
<td id="quartal"> </td>

我使用的javascript ...

var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
    myFunction(this);
    }
};
xhttp.open("GET", "infos.xml", true);
xhttp.send();

console.log(xhttp);


function myFunction(xml) {

    var cash = xml.responseXML;
    document.getElementById("cash").innerHTML =
    cash.getElementsByTagName("cash")[0].childNodes[0].nodeValue;

    var doctor = xml.responseXML;
    document.getElementById("doctor").innerHTML =
    doctor.getElementsByTagName("Doctor")[0].childNodes[0].nodeValue;

    var quartal = xml.responseXML;
    document.getElementById("quartal").innerHTML =
    quartal.getElementsByTagName("Quartal")[0].childNodes[0].nodeValue;
}

以相同的方式添加所有td表。但是如果使用循环来分别迭代表和xml

,情况会好得多

如果有帮助则投票

更新

用这种方式我算了......

var unchanged = xml.responseXML;

    var attrone= unchanged.getElementsByTagName('Unchanged');

    var c = 0;

    for(var i in attrone){

        if(c == attrone.length) break;

        c++;    
        document.getElementById('unchanged').innerHTML=attrone[i].getAttribute('count');

    }