2015-10-06 69 views
1

我有一個xml文件和一些標籤有點像這樣<m:properties></m:properties> 但是當我嘗試讀取它不起作用。XML <example>標記有:(<m:example>)

這是我的代碼如何閱讀:

displayCD(0); 

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

function myFunction(xml, i) { 
var xmlDoc = xml.responseXML; 
x = xmlDoc.getElementsByTagName("ENTRY"); 
document.getElementById("text").innerHTML = 
"Artist: " + 
x[i].getElementsByTagName("id")[0].childNodes[0].nodeValue + 
"<br>Title: " + 
x[i].getElementsByTagName("type")[0].childNodes[0].nodeValue + 
"<br>Year: " + 
x[i].getElementsByTagName("title")[0].childNodes[0].nodeValue + 
"<br>Price: " + 
x[i].getElementsByTagName("body")[0].childNodes[0].nodeValue + 
"<br>Price: " + 
x[i].getElementsByTagName("expires")[0].childNodes[0].nodeValue; 
} 

XML文件:

<?xml version="1.0" encoding="utf-8"?> 
<feed> 
    <ENTRY> 
     <content> 
      <m:properties> 
       <id>41</id> 
       <type>Hallo meneer</type> 
       <title>MAILING</title> 
       <body>Just some random content Hi !</body> 
       <expires>2013-07-11</expires> 
      </m:properties> 
     </content> 
    </ENTRY> 
</feed> 

,如果我刪除了:它的工作原理完全沒問題,反正是有這樣我可以保持:仍然讀它?

+2

那就是所謂的xml命名空間 – Nanoc

+0

可以顯示xml嗎? –

+0

@ T.G我編輯了這篇文章。 – SjaakvBrabant

回答

1

XML不是well-formed。一種使其良構的方法是從m:properties中刪除命名空間前綴(m:)。

另外,保持m:,聲明命名空間前綴:

<feed xmlns:m="http://www.example.com/m"> 

沒有任何消除命名空間前綴或宣佈它的XML不能很好地形成並不會被兼容的XML解析器成功解析。