我使用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