JS operacje na DOM - dziwne rozwiązania działają a inne nie


(Brzegowski) #1

Witam

Mam jeszcze jeden problem :confused: Mianowicie robie operacje na DOM-ie i jak dla mnie działa to bardzo dziwnie. Mam oto taki plik XML:

<?xma version="1.0" encoding="utf-8" ?>



    Kuba



    07/06/2011



    .......

Teraz aby się dostać do tekstu "Kuba" piszę:

request.responseXML.getElementsByTagName('map')[0].childNodes[1].childNodes[0].nodeValue;

dlaczego w 'childNodes[1]' działa z 1, a nie z '0'? Kolejny przykład("wyciągam" datę):

request.responseXML.getElementsByTagName('map')[0].childNodes[3].childNodes[0].nodeValue;

dlaczego działa ten przykład z 'childNodes[3]', dlazcego '3'? IMO powinno być '1', ale z tą wartością nie działa...

Ja już tego po prostu nie rozumiem, może mi ktoś wytłumaczyć na czym to polega, ponieważ już się pogubiłem.

Bardzo proszę o szybką pomoc. :slight_smile:

EDIT: Te "dziwne" przykłady działają pod Google Chrome, natomiast te normalne sprawdziłem właśnie pod IE9 i działają. Tym bardziej nie rozumię o co tutaj chodzi...

Pozdrawiam

brzegator27


(Kubarek) #2

Podejrzewam, że pierwszym dzieckiem elementu jest ten ciąg białych znaków (entery, spacje, tabulatory) przed . Takie ciągi też są traktowane jako pełnoprawne elementy XML :slight_smile: Podobnież z białymi znakami przed itd.


(Brzegowski) #3

Tak, zgadza się. :slight_smile: Po usunięciu białych znaków działa także poprawnie w Google Chrome. :slight_smile:

Bardzo dziękuję Ci za odpowiedź. :slight_smile: