Kodowanie czytnika RSS w JavaScript za pomocą XMLHttpRequest
.Czytanie sekcji XML CDATA z]] w niej
Dla niektórych RSS nie miałem żadnych problemów, ale w niektórych przypadkach atrybut xmlDocument.firstChild
był zawsze NULL
Po wypróbowaniu zobaczyć różnice między XML, który pracował i tych, które nie pracowały okazało się, że po jest przyczyną błędu.
<item>
<description>
<![CDATA[This is a description for a test [...]]]>
</description>
</item>
Bo w tym opisie tagu mam nawias zamykający następnie nawiasach zamykających CDATA jest przyczyną mojego błędu Zrobiłem kodu z C# z wykorzystaniem LINQ dla samego XML i wszystko działało.
Klamra zamykająca, która znajduje się tuż przed nawiasami zamykającymi CDATA, powoduje to dziwne zachowanie. Jako test próbowałem przeczytać ten sam XML przy użyciu C# i LINQ, wszystko działało dobrze.
Potem próbowałem dodać odstęp pomiędzy wspornikami zamykających, jak na poniższym
<![CDATA[This is a description for a test [...] ]]>
I udało się!
mój kod 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;
}
}
}
czy ktoś ma coś podobnego do czynienia? Teraz naprawdę nie wiem jak postępować wszelkie komentarze i sugestie są mile widziane.
Wygląda na to, że jest to błąd w analizatorze składni XML. Z jakiego systemu operacyjnego/przeglądarki/wersji korzystasz? – Phrogz
Przeglądarka nazywa się OBIGO, jest przeglądarką dla telefonów komórkowych – YasuDevil
Tak, uszkodzona przeglądarka. Sekcja CDATA może zawierać kombinacje "]]"; tylko pełne "]]>" kończy to. – StaxMan