MozillaPL.org - polskie centrum Mozilli

Główne menu:

pareser XML - dziwne rzeczy

Dyskusje na temat standardów WWW i zgłoszenia stron niedziałających poprawnie w przeglądarkach z rodziny Mozilli (w tym Mozilla Firefox)

Moderator: Pomocy?!

pareser XML - dziwne rzeczy

Postautor: Piotr Misiurek » 23 października 2007, 20:02

Przeglądarka: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.6) Gecko/20061201 Firefox/2.0.0.6 (Ubuntu-feisty)

Dość dziwny problem, z którym nie mogę sobie poradzić. Kawałek kodu:

Kod: Zaznacz cały
var xmlDocument = httpRequest.responseXML.documentElement;
               var from = xmlDocument.getElementsByTagName ("from")[0].firstChild.data;
               var to = xmlDocument.getElementsByTagName ("to")[0].firstChild.data;
               var info = xmlDocument.getElementsByTagName ("info")[0].firstChild.data;
               var source = xmlDocument.getElementsByTagName ("source")[0].firstChild.data;
               var url = xmlDocument.getElementsByTagName ("url")[0].firstChild.data;
               var pronunciation = xmlDocument.getElementsByTagName ("pronunciation")[0].firstChild.data;
               var text = "<p>INFO: " + info + "</p>Źródło: " + source + "<br />";
               text = text + "<a href=" + url + " target=_blank>" + url + "</a><br />";
               text = text + "<table><tr><td>l.p.</td><td>" + from + "</td><td>" + to + "</td>";
               if (pronunciation == "yes")
                  text = text + "<td>Wymowa</td>";
               text = text + "</tr>"
               words = xmlDocument.getElementsByTagName ("word");
               for (i = start; i < start + 100; i++) {
                  if (!words[i]) break;
                  from = words[i].getElementsByTagName ("from")[0].firstChild.data;
                  to = words[i].getElementsByTagName ("to")[0].firstChild.data;
                  text = text + "<tr><td>" + eval (i + 1) + "</td><td>" + from + "</td><td>" + to + "</td>";
                  if (pronunciation == "yes") {
                     pro = words[i].getElementsByTagName ("pronunciation")[0].firstChild.data;
                     text = text + "<td>" + pro + "</td>";
                  }
                  text = text + "</tr>";
               }
               text = text + "</table>";
               writeText (text, "list");


Kawałek pliku XML:
Kod: Zaznacz cały
<?xml version='1.0' encoding='utf-8' ?>
<list>
   <from>ang</from>
   <to>pl</to>
   <info>Informacje</info>
   <source>Źródło</source>
   <url>link</url>
   <pronunciation>yes</pronunciation>
   <word>
      <from>I</from>
      <to>ja</to>
      <pronunciation>aj</pronunciation>   
   </word>
   <word>
      <from>You</from>
      <to>ty, wy</to>
      <pronunciation>ju</pronunciation>
   </word>
</list>



I tak, gdy plik jest taki jak w podanym przeze mnie przykładzie, wszystko idzie ok. Jednak gdy się trochę rozrośnie, do 1000 elementów WORD, to się wykrzacza. Konsola błędów wywala już błąd:

Błąd: xmlDocument.getElementsByTagName("info")[0] has no properties
Plik źródłowy: http://localhost/1000slow/js.js
Wiersz: 25


Czyli w miejscu, które jest identyczne, co w krótkiej wersji pliku. Nie rozumiem co jest nie tak. Może ktoś pomóc? Może plik jest za długi bądź ja czegoś nie umiem?

pozdrawiam,

Piotr Misiurek
[wycinam spam /moderator]
Piotr Misiurek
 

Wróć do Standardy WWW i źle działające strony

Kto jest online

Zarejestrowani użytkownicy: Baidu [Spider], Bing [Bot], Google [Bot]

cron
Przejdź do powiązanej strony

Nawigacja:

Stopka: