Problem mit XML Datei
Tim Kellner
- javascript
Hallo,
ich habe ein Problem, und zwar habe ich eine XML Datei und möchte gerne den Inhalt von baustelle auslesen möchte. Das Ergebis ist jedoch null. Der Node ist richtig, aber ich komme jedoch nicht an die Daten
Mein Versuch:
nodeName = xml.childNodes[0].childNodes[i].nodeValue;
Beispiel:
<baustelle id="1">Kok. Zollverein</baustelle> => Kok. Zollverein
<?xml version="1.0" encoding="utf-8" ?>
<tagesbericht>
<baustellen>
<baustelle id="1">Kok. Zollverein</baustelle>
<baustelle id="2">Duisburg Kleiststr. 59</baustelle>
<baustelle id="3">Duisburg In den Bremmen 26</baustelle>
</baustellen>
</tagesbericht>
Doch ich bekomme es leider nicht hin.
Hat eienr von euch eine Idee?
Gruß
Tim
ich habe ein Problem, und zwar habe ich eine XML Datei und möchte gerne den Inhalt von baustelle auslesen möchte. Das Ergebis ist jedoch null. Der Node ist richtig, aber ich komme jedoch nicht an die Daten
Wenn Du den richtigen Knoten hättest, kann das Ergebnis IMO nie Null sein. Allerdings gibt es nodeType, der Dir sagt, welchen Typ der Konten hat.
nodeName = xml.childNodes[0].childNodes[i].nodeValue;
Worauf referenziert xml? Auf document? Dann wäre der erste Kindknoten der hier:
<?xml version="1.0" encoding="utf-8" ?>
Und der hat keine weiteren Kinder. Schau Dir Dein XML mal im Firefox'schen DOM-Inspector an, da kannst Du sehr schön die Baumstruktur erkennen.
Hat eienr von euch eine Idee?
Versuche es mit getElementById, und bevor Du angezählt wirst: Auch in XML müssen IDs mit einem Buchstaben beginnen.
Siechfred
Korrektur:
Worauf referenziert xml? Auf document? Dann wäre der erste Kindknoten der hier:
<?xml version="1.0" encoding="utf-8" ?>
Der erste Kindkonoten wäre <tagesberichte>, der (neben den Whitespaces) nur einen weiteren Kindknoten hat, nämlich <baustellen>, und der hat nunmal keinen nodeValue, sondern nur weitere Kindknoten. Und die sind es doch, die Du suchst.
Siechfred
Hallo Siechfred,
Auch in XML müssen IDs mit einem Buchstaben beginnen.
So absolut ist das nicht richtig, das genannte id-Attribut müsste auch als ID-Inhaltstyp deklariert sein. Als CDATA machen einzelne oder führende Ziffern keine Probleme:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE bla [
<!ELEMENT bla (blub*)>
<!ELEMENT blub (#PCDATA)>
<!ATTLIST blub id ID #IMPLIED>
]>
<bla>
<blub id="1">Test</blub><!-- Fehler in id -->
</bla>
vs.
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE bla [
<!ELEMENT bla (blub*)>
<!ELEMENT blub (#PCDATA)>
<!ATTLIST blub id CDATA #IMPLIED>
]>
<bla>
<blub id="1">Test</blub><!-- ok -->
</bla>
Was die DOM-Methoden daraus machen, ist eine andere Sache und intuitiv verwendet man dann doch ID-konforme Werte ...
Grüße,
Thomas
Hey Thomas.
Auch in XML müssen IDs mit einem Buchstaben beginnen.
So absolut ist das nicht richtig, das genannte id-Attribut müsste auch als ID-Inhaltstyp deklariert sein. [...]
Danke, wieder was dazugelernt :)
Siechfred
Hello out there!
und bevor Du angezählt wirst: Auch in XML müssen IDs mit einem Buchstaben beginnen.
Nope; auch '_' und ':' sind erlaubt. [XML10 §2.3]
Und bevor Du angezählt wirst ;-), solltest du diese Aussage auf XML 1.0 beschränken; in XML 1.1 sind es noch etliche Zeichen mehr. [XML11 §2.3]
See ya up the road,
Gunnar
Hey Gunnar.
und bevor Du angezählt wirst
Und bevor Du angezählt wirst ;-)
Jaja, Glashaus und Steine und so ;)
Siechfred