svg4you: XML datei mit JavaScript auslesen

Beitrag lesen

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