Yas*_*vil 5 javascript xml cdata
我正在使用Javascript编写RSS阅读器XMLHttpRequest
.
对于一些RSS Feeds,我没有遇到任何问题,但在某些情况下,xmlDocument.firstChild
属性始终如此NULL
在尝试查看有效的XML和无效的XML之间的差异后,我发现以下是导致错误的原因.
<item>
<description>
<![CDATA[This is a description for a test [...]]]>
</description>
</item>
Run Code Online (Sandbox Code Playgroud)
因为在这个描述标签中我有一个结束括号后跟CDATA的右括号导致我的错误,我用C#使用LINQ为相同的XML制作了一个代码,一切正常.
在CDATA的右括号之前的右括号引起了这种奇怪的行为.作为测试我尝试使用C#和LINQ读取相同的XML,一切正常.
然后我尝试在右括号之间添加一个空格,如下所示
<![CDATA[This is a description for a test [...] ]]>
它奏效了!
我的javascript代码
function LoadRSS() {
http_request.onreadystatechange = function () { showContent(http_request); };
http_request.open("GET", "./feeds/test.xml", true);
http_request.send(false);
}
function showContent(http_request) {
if (http_request.readyState == 4) {
if (http_request.status == 200) {
var parser = new DOMParser();
var xml_doc = parser.parseFromString(http_request.responseText, "text/xml");
alert(xml_doc.firstChild)
}
else {
xml_doc = null;
}
}
}
Run Code Online (Sandbox Code Playgroud)
有没有人遇到类似的事情?现在我真的不知道如何进行任何评论和建议是受欢迎的.