🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.javascript
Article #50240

Re: Jak odczytać kodowanie

#50240
From: porneL
Date: Tue, 31 Aug 2010 19:53
39 lines
2383 bytes
On Tue, 31 Aug 2010 08:59:46 +0100, Paweł <pawel.neo@neostrada.pl> wrote:

> Wczytuję plik XML przez Ajaxa do zmiennej xmlstring
>
> Następnie wykonuję:

Nie wiedziałem, że to się da tak bardzo skomplikować :)

XHR ma responseXML zawierające od razu przeparsowany XML. Od tego jest ten  
X w AJAX.

> var xmlobject = (new DOMParser()).parseFromString(xmlstring, "text/xml");

Wg odpowiednich RFC text/xml nie obsługuje kodowania innego, niż ASCII.  
Jeżeli ten parser trzyma się standardu, to umyślnie nie pozwoli na użycie  
latin2. Jak bardzo chcesz podać typ, to podaj application/xml.  
[http://www.xml.com/pub/a/2004/07/21/dive.html]

Poza tym odpalając własny parser ignorujesz nagłówki HTTP, które mogą  
zawierać informację o kodowaniu.

> var root = xmlobject.getElementsByTagName('rss')[0];

od tego jest documentElement

> Dla wielu kanałów RSS jakie znalazłem wszytko działa prawidłowo
> Jednak dla tego: http://www.hdtv.com.pl/forum/external.php?type=RSS2
> w ostatniej instrukcji pojawia się błąd: "root has no properties"

Wygląda ok:
http://feedvalidator.org/check.cgi?url=http%3A%2F%2Fwww.hdtv.com.pl%2Fforum%2Fexternal.php%3Ftype%3DRSS2

więc to musi być problem z twoim parsowaniem (szklana kóla mówi, że  
zgubiona deklaracja kodowania powoduje błąd parsowania i zwrócenie null  
przez parser, po czym próbujesz wykonać metody na nullu).

-- 
http://pornel.net
this.author = new Geek("porneL");
Technical Details
Message-ID: <op.vibivyxtutk0y1@aimac.local>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
References: <i5gp8f$nef$1@mx1.internetia.pl> <i5gscb$jku$1@news.onet.pl> <i5h3k5$18j$1@mx1.internetia.pl> <op.vh9sgaqcutk0y1@aimac.local> <i5id0h$nbi$1@mx1.internetia.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
From: porneL <niusy4@pornel.net>
Newsgroups: pl.comp.lang.javascript
Subject: Re: Jak odczytać kodowanie
Date: Tue, 31 Aug 2010 20:53:48 +0100
Organization: "Portal Gazeta.pl -> http://www.gazeta.pl"
Lines: 39
Message-ID: <op.vibivyxtutk0y1@aimac.local>
References: <i5gp8f$nef$1@mx1.internetia.pl> <i5gscb$jku$1@news.onet.pl> <i5h3k5$18j$1@mx1.internetia.pl> <op.vh9sgaqcutk0y1@aimac.local> <i5id0h$nbi$1@mx1.internetia.pl>
NNTP-Posting-Host: 96.95.187.81.in-addr.arpa
Mime-Version: 1.0
X-Trace: inews.gazeta.pl 1283284438 14298 81.187.95.96 (31 Aug 2010 19:53:58 GMT)
X-Complaints-To: usenet@agora.pl
NNTP-Posting-Date: Tue, 31 Aug 2010 19:53:58 +0000 (UTC)
X-User: pornelspam
User-Agent: Opera Mail/10.70 (MacIntel)
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit