[英]How do I display XML data in a HTML table using Javascript? [on hold]
我正在嘗試創建一個 HTML 文檔,該文檔將讀取 XML 文件,並使用該數據填充表,使用 javascript。
我已經嘗試在網上遵循一些示例,但由於某種原因,我無法讓它工作。
預期結果應在表格中跨多列和多行顯示讀數。 我得到的只是一個空白網頁,根本沒有呈現任何數據。
HTML 代碼:
<!DOCTYPE html>
<html>
<head>
<title>Diabetes Readings</title>
<script>
</script>
</head>
<body>
<p id="out">Nothing</p>
<table id="readings">
<tr><td>Hello</td></tr>
</table>
<script>
</script>
</body>
XML 代碼:
<?xml version="1.0" encoding="UTF-8"?>
<readings>
<entry>
<date>15-10-19</date>
<time>1236</time>
<bs>12.9</bs>
<chk>No</chk>
<ket>1</ket>
<food>Sandwich</food>
<carb>37</carb>
<ins_carb>4</ins_carb>
<ins_corr>2</ins_corr>
<ins_ket>1</ins_ket>
<ins_tot>7</ins_tot>
</entry>
<entry>
<date>15-10-19</date>
<time>1703</time>
<bs>10.7</bs>
<chk>No</chk>
<ket>0</ket>
<ins_corr>1</ins_corr>
<ins_ket>1</ins_ket>
<ins_tot>2</ins_tot>
</entry>
<entry>
<date>15-10-19</date>
<time>1914</time>
<bs>5.5</bs>
<chk>Yes</chk>
<ket>0</ket>
<food>Pasta bake</food>
<carb>41</carb>
<ins_carb>4</ins_carb>
<ins_tot>4</ins_tot>
</entry>
<entry>
<date>15-10-19</date>
<time>2143</time>
<bs>9.4</bs>
<chk>Yes</chk>
<ket>0</ket>
</entry>
<entry>
<date>16-10-19</date>
<time>0049</time>
<bs>6.7</bs>
<chk>Yes</chk>
</entry>
<entry>
<date>16-10-19</date>
<time>0921</time>
<bs>14.6</bs>
<chk>No</chk>
<ket>0</ket>
<food>Toast w/ butter and jam</food>
<carb>39</carb>
<ins_carb>4</ins_carb>
<ins_corr>3</ins_corr>
<ins_tot>7</ins_tot>
</entry>
<entry>
<date>16-10-19</date>
<time>1415</time>
<bs>9.7</bs>
<chk>Yes</chk>
</entry>
<entry>
<date>16-10-19</date>
<time>2040</time>
<bs>10.1</bs>
<chk>No</chk>
<food>Chicken nuggets & chips</food>
<carb>73</carb>
<ins_carb>7</ins_carb>
<ins_corr>1</ins_corr>
<ins_tot>8</ins_tot>
</entry>
<entry>
<date>17-10-19</date>
<time>0023</time>
<bs>8.7</bs>
<chk>Yes</chk>
</entry>
<entry>
<date>17-10-19</date>
<time>0859</time>
<bs>17.1</bs>
<chk>No</chk>
<ket>0</ket>
<food>Cheerios w/ milk</food>
<carb>43</carb>
<ins_corr>3</ins_corr>
<ins_carb>4</ins_carb>
<ins_tot>7</ins_tot>
</entry>
<entry>
<date>17-10-19</date>
<time>1215</time>
<bs>10.0</bs>
<chk>No</chk>
<food>Scrambled egg w/ 2 toast</food>
<carb>34</carb>
<ins_carb>3</ins_carb>
<ins_corr>1</ins_corr>
<ins_tot>4</ins_tot>
</entry>
<entry>
<date>17-10-19</date>
<time>1903</time>
<bs>13.0</bs>
<chk>No</chk>
<food>Tortellini w/ sauce</food>
<carb>111</carb>
<ins_carb>11</ins_carb>
<ins_corr>2</ins_corr>
</entry>
<entry>
<date>18-10-19</date>
<time>0019</time>
<bs>13.2</bs>
<ins_corr>2</ins_corr>
</entry>
<entry>
<date>18-10-19</date>
<time>0855</time>
<bs>13.9</bs>
<ins_corr>2</ins_corr>
<ins_carb>4</ins_carb>
</entry>
<entry>
<date>18-10-19</date>
<time>1316</time>
<bs>9.8</bs>
<chk>Yes</chk>
<food>2 x chicken caesar wrap</food>
<carb>92.6</carb>
<ins_carb>14</ins_carb>
</entry>
<entry>
<date>18-10-19</date>
<time>2013</time>
<bs>14.0</bs>
<chk>No</chk>
<ket>0</ket>
<food>Pizza</food>
<carb>91.2</carb>
<ins_carb>9</ins_carb>
<ins_corr>3</ins_corr>
</entry>
</readings>
Javascript 代碼:
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
myFunction(this);
}
};
xhttp.open("get","diabetes.xml",true);
xhttp.send();
function myFunction(xml) {
var i;
var xmlDOC = xml.responseXML;
var table = "<tr><th>Date</th><th>Time</th><th>Reading</th><th>Check</th><th>Ketone</th><th>Food</th><th>Carbs></th><th>Insulin (corr)</th><th>Insulin (carbs)</th><th>Insulin (ketones)</th><th>Insulin (total)</th></tr>";
var x = xmlDoc.getElementsByTagName("entry");
for (i = 0; i < x.length; i++)
{
table += "<tr><td>" + x[i].getElementsByTagName("date")[0].childNodes[0].nodeValue + "</td><td>" + x[i].getElementsByTagName("time")[0].childNodes[0].nodeValue + "</td><td>" + x[i].getElementsByTagName("bs")[0].childNodes[0].nodeValue + "</td><td>" + x[i].getElementsByTagName("chk")[0].childNodes[0].nodeValue + "</td><td>" + x[i].getElementsByTagName("ket")[0].childNodes[0].nodeValue + "</td><td>" + x[i].getElementsByTagName("food")[0].childNodes[0].nodeValue + "</td><td>" + x[i].getElementsByTagName("carb")[0].childNodes[0].nodeValue + "</td><td>" + x[i].getElementsByTagName("ins_corr")[0].childNodes[0].nodeValue + "</td><td>" + x[i].getElementsByTagName("ins_carb")[0].childNodes[0].nodeValue + "</td><td>" + x[i].getElementsByTagName("ins_ket")[0].childNodes[0].nodeValue + "</td><td>" + x[i].getElementsByTagName("ins_tot")[0].childNodes[0].nodeValue + "</td></tr>";
}
document.getElementById("out").innerHTML = table;
}
希望我的片段可以以任何方式幫助您。 干杯!
<!DOCTYPE html>
<html>
<head>
<meta content="text/html;charset=utf-8" http-equiv="Content-Type">
<meta content="utf-8" http-equiv="encoding">
<title>Diabetes Readings</title>
<script>
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
myFunction(this);
}
};
xhttp.open("get", "diabetes.xml", true);
xhttp.send();
function myFunction(xml) {
var i;
var xmlDoc = xml.responseXML;
var table = "<tr><th>Date</th><th>Time</th><th>Reading</th><th>Check</th><th>Ketone</th><th>Food</th><th>Carbs</th><th>Insulin (corr)</th><th>Insulin (carbs)</th><th>Insulin (ketones)</th><th>Insulin (total)</th></tr>";
var x = xmlDoc.getElementsByTagName("entry");
for (i = 0; i < x.length; i++) {
date = (x[i].getElementsByTagName("date")[0]) ?
x[i].getElementsByTagName("date")[0].childNodes[0].nodeValue :
"-";
time = (x[i].getElementsByTagName("time")[0]) ?
x[i].getElementsByTagName("time")[0].childNodes[0].nodeValue :
"-";
bs = (x[i].getElementsByTagName("bs")[0]) ?
x[i].getElementsByTagName("bs")[0].childNodes[0].nodeValue :
"-";
chk = (x[i].getElementsByTagName("chk")[0]) ?
x[i].getElementsByTagName("chk")[0].childNodes[0].nodeValue :
"-";
ket = (x[i].getElementsByTagName("ket")[0]) ?
x[i].getElementsByTagName("ket")[0].childNodes[0].nodeValue :
"-";
food = (x[i].getElementsByTagName("food")[0]) ?
x[i].getElementsByTagName("food")[0].childNodes[0].nodeValue :
"-";
carb = (x[i].getElementsByTagName("carb")[0]) ?
x[i].getElementsByTagName("carb")[0].childNodes[0].nodeValue :
"-";
ins_corr = (x[i].getElementsByTagName("ins_corr")[0]) ?
x[i].getElementsByTagName("ins_corr")[0].childNodes[0].nodeValue :
"-";
ins_carb = (x[i].getElementsByTagName("ins_carb")[0]) ?
x[i].getElementsByTagName("ins_carb")[0].childNodes[0].nodeValue :
"-";
ins_ket = (x[i].getElementsByTagName("ins_ket")[0]) ?
x[i].getElementsByTagName("ins_ket")[0].childNodes[0].nodeValue :
"-";
ins_tot = (x[i].getElementsByTagName("ins_tot")[0]) ?
x[i].getElementsByTagName("ins_tot")[0].childNodes[0].nodeValue :
"-";
table += "<tr><td>" + date + "</td><td>" + time + "</td><td>" + bs + "</td><td>" + chk + "</td><td>" + ket + "</td><td>" + food + "</td><td>" + carb + "</td><td>" + ins_corr + "</td><td>" + ins_carb + "</td><td>" + ins_ket + "</td><td>" + ins_tot + "</td></tr>";
}
document.getElementById("readings").innerHTML = table;
}
</script>
</head>
<body>
<table id="readings" border="1"></table>
</body>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.