2016-11-20 5 views
0
<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE member 
[ 
<!ELEMENT member (urn, forename, surname, dob, email)> 
]> 
<member> 
<urn>#######</urn> 
<forename>name</forename> 
<surname>surname</surname> 
<dob>##/##/###</dob> 
<email>[email protected]</email> 

</member> 

<button type="button" onclick="loadXMLDoc()">View my details</button> 
<br><br> 
<table id="myDeets"></table> 

<script> 
function loadXMLDoc() { 
    var xmlhttp = new XMLHttpRequest(); 
xmlhttp.onreadystatechange = function() { 
    if (this.readyState == 4 && this.status == 200) { 
    myFunction(this); 
} 
}; 
xmlhttp.open("GET", "/data/member_6426374.xml", true); 
xmlhttp.send(); 
} 
function myFunction(xml) { 
var i; 
var xmlDoc = xml.responseXML; 
var table="<tr><th>URN</th><th>Forename</th><th>Surname</th><th>DOB</th>   <th>Email</th></tr>"; 
var x = xmlDoc.getElementsByTagName("CD"); 
for (i = 0; i <x.length; i++) { 
table += "<tr><td>" + 
x[i].getElementsByTagName("urn")[0].childNodes[0].nodeValue + 
"</td><td>" + 
x[i].getElementsByTagName("forename")[0].childNodes[0].nodeValue + 
"</td><td>" + 
x[i].getElementsByTagName("surname")[0].childNodes[0].nodeValue + 
"</td><td>" + 
x[i].getElementsByTagName("dob")[0].childNodes[0].nodeValue + 
"</td><td>" + 
x[i].getElementsByTagName("email")[0].childNodes[0].nodeValue + 
"</td></tr>"; 
} 
    document.getElementById("myDeets").innerHTML = table; 
} 
</script> 

基本的にはボタンがあります。このボタンを押すと、XML文書の情報を含む表が作成されます。 ボタンを押すと、このフォームが表示されますが、詳細がテーブルの列に読み込まれません。 http://image.prntscr.com/image/cba0a5a349f04d6582ee8f5624ad3527.png私の詳細が自分のXML文書から自分のテーブルに読み込まれないのはなぜですか?

ありがとうございました。

答えて

0

私はあなたがそこに着いたこのコードについてはよく分からない。私は、この有効なXML定義はないと思う

<!DOCTYPE member 
[ 
<!ELEMENT member (urn, forename, surname, dob, email)> 
]> 

。これに

var x = xmlDoc.getElementsByTagName("CD"); 

変更、それを::

あなたのエラーは、xmlファイルからベース部材の選択であるように思わ

var x = xmlDoc.getElementsByTagName("member"); 

サンプルXMLデータファイル "member_6426374.xml"

<?xml version="1.0" encoding="UTF-8"?> 
<member> 
    <urn>#######</urn> 
    <forename>name</forename> 
    <surname>surname</surname> 
    <dob>##/##/###</dob> 
    <email>[email protected]</email> 
</member> 

HTML

<button type="button" onclick="loadXMLDoc()">View my details</button> 
<br><br> 
<table id="myDeets"></table> 

Javascriptを

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

function myFunction(xml) { 
    var i; 
    var xmlDoc = xml.responseXML; 
    var table = "<tr><th>URN</th><th>Forename</th><th>Surname</th><th>DOB</th>   <th>Email</th></tr>"; 
    var x = xmlDoc.getElementsByTagName("member"); 

    for (i = 0; i < x.length; i++) { 
     table += "<tr><td>" + 
      x[i].getElementsByTagName("urn")[0].childNodes[0].nodeValue + 
      "</td><td>" + 
      x[i].getElementsByTagName("forename")[0].childNodes[0].nodeValue + 
      "</td><td>" + 
      x[i].getElementsByTagName("surname")[0].childNodes[0].nodeValue + 
      "</td><td>" + 
      x[i].getElementsByTagName("dob")[0].childNodes[0].nodeValue + 
      "</td><td>" + 
      x[i].getElementsByTagName("email")[0].childNodes[0].nodeValue + 
      "</td></tr>"; 
    } 
    document.getElementById("myDeets").innerHTML = table; 
} 

結果

enter image description here

EDIT

ドメインのルートディレクトリの下に/data/member_6426374.xmlというxmlファイルが存在することも確認してください。

関連する問題