Zugriff auf Tags mit ":" im Tagnamen
JürgenB
- xml
0 MudGuard0 JürgenB
0 Gunnar Bittersmann0 JürgenB
0 JürgenB
Hallo,
ich lese mit AJAX (genaugenommen mit "GDownloadUrl" und "GXml.parse" aus der Google Maps API) eine xml-Datei im GPX-Format ein. Aus dieser Datei lese ich die gewünschte Werte mit der DOM-Methode getElementsByTagName. Allerdings sind in dieser xml-Datei auch "extensions", die sich dadurch auszeichnen, das in ihren Tagnamen ein ":" vorkommt, also z.B. "gpxx:rpt".
Der Versuch, auch auf diese Elemente per getElementsByTagName zuzugreifen, funktioniert zwar im IE (7), nicht aber im Firefox. Hier werden sie einfach nicht gefunden (length=0). Daher vermute ich, das ich da was falsch mache. Wenn ich mich mit childNodes zu den Elementen durchhangele, werden sie gefunden und im nodeName steht auch das richtige.
Kann mir jemand zeigen, wie ich auch auf die Elemente mit dem ":" im Namen zugreifen kann?
Gruß, Jürgen
Hi,
ich lese mit AJAX (genaugenommen mit "GDownloadUrl" und "GXml.parse" aus der Google Maps API) eine xml-Datei im GPX-Format ein. Aus dieser Datei lese ich die gewünschte Werte mit der DOM-Methode getElementsByTagName. Allerdings sind in dieser xml-Datei auch "extensions", die sich dadurch auszeichnen, das in ihren Tagnamen ein ":" vorkommt, also z.B. "gpxx:rpt".
Du meinst, die einen Namespace vor dem element name haben.
Der Versuch, auch auf diese Elemente per getElementsByTagName zuzugreifen, funktioniert zwar im IE (7),
Dem IE ist aber auch wirklich alles zuzutrauen.
nicht aber im Firefox.
Natürlich nicht.
getElementByNameNS ist das, was Du brauchst, um auf Elemente im Namespace zuzugreifen.
cu,
Andreas
Hallo MudGuard,
danke für das Stichwort "Namespace".
getElementByNameNS ist das, was Du brauchst, um auf Elemente im Namespace zuzugreifen.
liefert in der Fehlerkonsole leider "... is not a Function". Hast du mal einen Link zur Doku? Bei google habe ich nichts brauchbares gefunden. Nur eine Java-Klasse.
Gruß, Jürgen
Hello out there!
Hast du mal einen Link zur Doku?
Hast du mich auf der Blacklist?
Ich schätze, MudGuard meinte auch 'getElementsByTagNameNS'.
See ya up the road,
Gunnar
Hallo Gunnar,
Hast du mal einen Link zur Doku?
nein. Aber ich antworte chronologisch.
Gruß, Jürgen
Hello out there!
"extensions", die sich dadurch auszeichnen, das in ihren Tagnamen ein ":" vorkommt, also z.B. "gpxx:rpt".
Du meinst Namensräume? [SELFHTML, XML-NAMES]
Kann mir jemand zeigen, wie ich auch auf die Elemente mit dem ":" im Namen zugreifen kann?
getElementsByTagNameNS() [Mozilla]
See ya up the road,
Gunnar
Hallo Gunnar,
auch dir vielen Dank für das Stichwort "Namensräume".
getElementsByTagNameNS() [Mozilla]
funktioniert das auch Browserübergreifend?
Bei der Suche nach einer Doku zu getElementByNameNS (siehe Antwort von MudGuard) habe ich übrigens gefunden, das man bei getElementsByTagname den Namensraum einfach weglassen kann. Funktioniert zumindestens im FF.
Gruß, Jürgen
Hallo,
ich habe das jetzt mal unter Windows XP getestet:
getElementByTagNameNS:
funktioniert unter FF (2.0.0.7), Opera (9.1) und Safari (3.0.3).
IE (7) meldet: Zeile ... Das Objekt unterstützt diese Eigenschaft oder Methode nicht.
getElementsByTagName(Namensraum:Name):
geht nur im IE
getElementsByTagName(Name):
geht im FF, der IE findet das Element nicht.
Ich werde mir wohl ein myGetElementsByTagNameNS basteln müssen.
Gruß, Jürgen
Hello out there!
Ich werde mir wohl ein myGetElementsByTagNameNS basteln müssen.
Nö, du müsstest bloß dem IE getElementByTagNameNS() beibringen, so in der Art:
if (!foo.getElementByTagNameNS)
{
foo.getElementByTagNameNS = function (ns, tagName)
{
return foo.getElementByTagName("gpxx:" + tagName);
}
}
See ya up the road,
Gunnar