XML Pfad ist falsch

intercorni

Erfahrenes Mitglied
Ich habe hier ein XML-File und versuche krampfhaft, die Inhalte auszulesen. Irgendwie passt der Pfad zur Information nicht.
So ist mein XML-File aufgebaut:

PHP:
<?xml version='1.0' encoding='utf-8'?>
<inhalts_resources>
<fenster01 datum="Donnerstag"/>
</inhalts_resources>
<inhalts_resources>
<content><![CDATA[<font face="Verdana">Hallo]]></content>
</inhalts_resources>
Eingelesen wird es so:

PHP:
var XMLdaten_beschreibung = [];
var XMLdaten = new XML();
XMLdaten.ignoreWhite = true;
XMLdaten.onLoad = function(success) {
if (success) {
var n:Array = this.childNodes[1].childNodes;
for (var i = 0; i < n.length; i++) {
XMLdaten_beschreibung[i] = n[i].childNodes[1].nodeValue;
}
trace(XMLdaten_beschreibung);
}
};
XMLdaten.load("inhalte2.xml");
Und ich schaffe es nicht, die letzte Info, also "Hallo", ausgeben zu lassen.
Was stimmt denn hier nicht? Stimmen die Pfadangaben nicht?

Gruss,

Cornel
 
Hi,

Du gehst viel zu tief in Knoten, die garnicht existieren. Die "inhalts_resources" sind jeweils die Haupt-Knoten des Objekts (XMLdaten.childNodes), "fenster01" und "content" deren Kinder:
Code:
var XMLdaten_beschreibung = new Array();
XMLdaten.onLoad = function() {
    for (var i=0; i<this.childNodes.length; i++) {
        XMLdaten_beschreibung.push(this.childNodes[i].childNodes[0].firstChild);
}

Gruß
.
 
Hallo,

vielen Dank, aber wenn ich XML so einlese, wird mein Text auch nicht angezeigt:

PHP:
var XMLdaten_beschreibung = new Array();
XMLdaten.load("inhalte2.xml"); 
var XMLdaten = new XML();
XMLdaten.ignoreWhite = true;
XMLdaten.onLoad = function() {
    for (var i=0; i<this.childNodes.length; i++) {
        XMLdaten_beschreibung.push(this.childNodes[i].childNodes[0].firstChild);
}
}
trace(XMLdaten_beschreibung);

Müssen CDATA-Informationen nicht per nodeValue eingelesen werden?

Gruss,

Cornel
 
Hi,

das liegt daran, dass Du das hier:
Code:
trace(XMLdaten_beschreibung);
Direkt auf der Zeitleiste stehen hast, will heissen: Die Zeile wird ausgeführt, bevor onLoad aufgerufen wird (klar: Flash wartet mit der Codeausführung nicht darauf, dass die Datei geladen wird).

@nodeValue: Lass Dir mal den nodeType der beiden Knoten ausgeben: Er hat den Wert 1, also kannst Du auch nichts mit nodeValue auslesen.

Gruß
.
 
Zurück