我使用XMLHttpRequest
在Javascript中对RSS阅读器进行编码。阅读XML CDATA部分]]在其中
对于一些RSS订阅我没有问题,但在某些情况下,xmlDocument.firstChild
属性总是NULL
想看到工作的XML和没有工作,我发现下面的那些之间的区别后是错误的原因。
<item>
<description>
<![CDATA[This is a description for a test [...]]]>
</description>
</item>
因为在此说明标签我有一个右括号其次是CDATA的右括号引起我的错误,我做了使用LINQ对相同的XML C#和一切代码工作。
恰好在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;
}
}
}
有谁曾经面临类似的东西?现在我真的不知道如何进行任何意见和建议,欢迎。
这似乎是XML解析器中的一个错误。你使用什么操作系统/浏览器/版本? – Phrogz 2011-01-11 17:37:43
该浏览器被称为OBIGO,它是一个手机浏览器 – YasuDevil 2011-01-11 17:40:05
是的,浏览器坏了。 CDATA部分可以包含']]'组合;只有完整']]>'结束它。 – StaxMan 2011-01-11 17:52:08