Autor Zpráva
kajaman
Profil
ahoj všem, mám např. takovýto xml dokument:

<?xml version='1.0' encoding='UTF-8' ?>
<stranka>
    <prvek>
        <dalsiPrvek>nejaky text</dalsiPrvek>
    </prvek>
</stranka>


Trošku mě mate, že firstChild elementu <stranka>
je objekt Text.... Znamená to, že se mi tam pravděpodobně
plete to odsazení a správně by xml dokument měl vypaadat
takto:

<?xml version='1.0' encoding='UTF-8' ?><stranka><prvek><dalsiPrvek>nejaky text</dalsiPrvek></prvek></stranka>


tzn. všechno v řádce bez jakéhokoli "lidsky-čitelného" formátování??
Měsíček
Profil
Ke tvé otázce -> ne.
kajaman
Profil
ahoj, ty jsi tady pořád, co? :-)

trochu se rozepiš a zkus mi, prosím, poradit...
Měsíček
Profil
Vlastně kecy, měl jsi pravdu .. takhle (když to bude na jedno řádku) tak dá document.firstChild.childNodes.length 1 jinak pokud to budeš strukturovat tak dá 3. Takže k tomu poslednímu prvku by jsi se měl dostat například takto document.firstChild.childNodes[1].childNodes[1].nodeName; // Jméno tagu
Jan Tvrdík
Profil
Měsíček
Není lepší použít getElementsByName + while (nodeType != 1) {...} ?
Měsíček
Profil
Reaguji na Jana Tvrdíka:

Při práci s DOMem a XML ano, při ukázce jak to celé funguje určitě ne.

Reaguji na Kajamana:

Snad ti docvakne jak to vypadá když je to strukturované (XML parser si bere i znaky \n\t proto bude *.length 3 a u nestrukturovaného 1):

<?xml version='1.0' encoding='UTF-8' ?>
<stranka>
  <prvek>
    <dalsiPrvek>nejaky text</dalsiPrvek>
  </prvek>
</stranka>

document.firstChild.tagName;                         // stranka
document.getElementsByTagName("stranka")[0].tagName; // stranka
document.firstChild.childNodes.length;               // 3
document.firstChild.childNodes[0].nodeValue;         // 
document.firstChild.childNodes[1].nodeValue;         // null
document.firstChild.childNodes[2].nodeValue;         //
document.firstChild.childNodes[2].nodeName;          // #Text
document.firstChild.childNodes[1].nodeName;          // prvek
document.firstChild.childNodes[0].nodeName;          // #Text
kajaman
Profil
děkuji za reakce!
Leo
Profil
Firefox to dela i u obyc. html dokumentu, takze misto prace s uzly je v rade pripadu opravdu lepsi getElementByTagName. Leo
habendorf
Profil
je v rade pripadu opravdu lepsi getElementByTagName

getElementsByTagName

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: