2017-04-13 8 views
0

このトピックは古いです。私は学んでおり、解析しようとしていますが、私の場合はそれをどうやって行うのか分かりません。あなたは私にそれをする方法を示すか、1つか2つの値で私を助けてくれますか?xmlの "count"のデータをテーブルhtmlに解析します

<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

OK、あなたは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'); 

    } 
+0

ジョーダンさんに感謝します。私はあなたの解決策をアップしたが、私の質問は 'count 'のデータに関するものであった(例えば、' 'から)。私のテーブルに '123'をどのように解析できますか? – gnase

+0

これをお探しですか?あなたのXMLに誤りがあるのを見てください。はファイルの最後に移動する必要があります。合計で閉じるタグにスラッシュを追加してください:) –

+0

ありがとう、あなたは正しいです。 Totalにすでに '/'を追加します。しかし、私はが最後にあるべきだとは思わない。私は、このXMLデータは、「Metainformation」と「Patientlist」の2つの部分で構成されていると思います。 Btw、「カウント」から価値を引き出す方法を教えてくれませんか? – gnase

関連する問題