【问题标题】:XML <example> tag with : (<m:example>)带有 : (<m:example>) 的 XML <example> 标记
【发布时间】:2015-10-06 19:54:20
【问题描述】:

我有一个 xml 文件,其中一些标签中有像这样的点 &lt;m:properties&gt;&lt;/m:properties&gt; 但是当我尝试阅读它时它不起作用。

这是我阅读的代码:

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>

如果我删除 : 它完全可以正常工作,无论如何我可以保留 : 并仍然阅读它吗?

【问题讨论】:

  • 所谓的xml命名空间
  • @T.G 我编辑了帖子。
  • @Nanoc 好的,我明白了,但是我如何调用 id。不能正常工作?
  • 我不知道为什么你最近的问题遭到了反对,但我正要回答它,然后你才删除它......
  • 因为人家哭的太快了哈哈,不过你能不能再聊聊还帮帮我呢? @詹姆斯唐纳利

标签: xml


【解决方案1】:

XML 不是 well-formed。您发现,使其格式良好的一种方法是从 m:properties 中删除名称空间前缀 (m:)。

或者,要保留m:,声明命名空间前缀:

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

如果不消除或声明命名空间前缀,则 XML 格式不正确,将无法被兼容的 XML 解析器成功解析。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多