XML datei mit JavaScript auslesen
Michael
- javascript
0 Lukas Böhm0 Gernot Back1 svg4you0 Michael
Hallo Zusammen,
ich versuche seit ein paar Tagen eine einfach xml-datei mittels JavaScript zu durchsuchen und auszugeben.
1. Kann mir jemand evtl. einen guten Link empfehlen zum Thema XML-Datenbank nach bestimmten Schlagwörtern durchsuchen und dann die entprechende Knoten ausgeben...
2. Habe ich folgende Konstruktion:
XML-File:
<?xml version='1.0' encoding='utf-8'?>
<cocktails>
<cock1>
<name>Caipi</name>
<inhalt>Cachaca</inhalt>
</cock1>
<cock2>
<name>MaiTai</name>
<inhalt>Vodka, Rum</inhalt>
</cock2>
</cocktails>
JAVA_script:
var ausgabe = xmldoc.getElementsByTagName('cocktails').item(0).getElementsByTagName('cock1').item(0)getElementsByTagName('name').item(0);
---> Ich würde gerne auf den Inhalt von "name" also Caipi zugreifen... Die Ausgabe liefert mir allerdings unter Firefox: [object Element] und sonst nichts.
Vieleicht kann mir jemand ein wenig auf die Sprünge helfen...
THX
Michael
Hi!
Also ich weiß nicht, ob das so geht, wie du es gemacht hast und ob dort nur ein kleiner Fehler drin ist.
Aber mit diesem Tutorial kannst du es lernen.
szia, Lukas
Hallo Michael,
Vieleicht kann mir jemand ein wenig auf die Sprünge helfen...
Du möchtest den Textinhalt dieses Objektes ausgeben lassen.
Gruß Gernot
Tach Michael,
JAVA_script:
var ausgabe = xmldoc.getElementsByTagName('cocktails').item(0).getElementsByTagName('cock1').item(0)getElementsByTagName('name').item(0);---> Ich würde gerne auf den Inhalt von "name" also Caipi zugreifen... Die Ausgabe liefert mir allerdings unter Firefox: [object Element] und sonst nichts.
Der Zugriff auf den gesuchten Elementinhalt kann unterschiedlich erfolgen, u. a. so:
var ausgabe = xmldoc.getElementsByTagName('cocktails').item(0).getElementsByTagName('cock1').item(0).getElementsByTagName('name').item(0).firstChild.nodeValue;
var ausgabe = xmldoc.getElementsByTagName('cock1').item(0).firstChild.firstChild.nodeValue;
var ausgabe = xmldoc.getElementsByTagName('name').item(0).firstChild.nodeValue;
Statt nodeValue kann bei Textknoten auch data verwendet werden.
Ansonsten ist auch die genannte XML-Struktur nicht optimal. Beim 100. Cocktail wäre wohl ein Element cock100 fällig, d. h. die spätere Abfrage von Daten wird unnötig verkompliziert. Besser wäre:
<?xml version='1.0' encoding='utf-8'?>
<cocktails>
<cocktail nr="1">
<name>Caipi</name>
<inhalt>Cachaca</inhalt>
</cocktail>
<cocktail nr="2">
<name>MaiTai</name>
<inhalt>Vodka, Rum</inhalt>
</cocktail>
</cocktails>
Das Attribut nr ist auch nicht unbedingt nötig, denn via DOM lässt sich die Position von cocktail-Elementen auch ermitteln.
Man liest sich,
svg4you
@svg4you, Gernot Back, Lukas Böhm
Vielen herzlichen Dank!
Mein erster Hilferuf hier und ihr habt mir prompt weitergeholfen.
Vor allem der Tipp mit den Attributen... hatte das zwar auch schon probiert aber irgendwie nicht geschafft auf das Attribut zuzugreifen. Denke mal das werd ich jetzt hin bekommen.
Danke.
Beste Grüße,
Michael