intercorni
Erfahrenes Mitglied
Hallo,
ich verwende ein XML File zum einlesen verschiedener Informationen.
Dieses ist folgendermaßen aufgebaut:
Die einzelnen Infos lade ich in einzelne Arrays:
So kann ich das Thema 01 inkl. Beschreibung, Frage und Antworten problemlos auslesen.
Das klappt allerdings nur für das Thema 01.
Wie müsste ich die Abfrage verändern, um z.B. auch an Thema02 zu kommen? In der XML gibt es übrigens 5 Themen, die ich alle auslesen müsste.
Ich freue mich über jede Hilfe.
Cornel
ich verwende ein XML File zum einlesen verschiedener Informationen.
Dieses ist folgendermaßen aufgebaut:
PHP:
<?xml version='1.0' encoding='utf-8' ?>
<thema01 name="Thema 1" beschreibung="Beschreibung" >
<frage name="Frage 1" beschreibung="Hier steht die Frage 1">
<antwort name="Antwort1" beschreibung="Falsch" />
<antwort name="Antwort2" beschreibung="Richtig" />
<antwort name="Antwort3" beschreibung="Falsch" />
</frage>
</thema01>
<thema02 name="Thema 2" beschreibung="Beschreibung" >
<frage name="Frage 1" beschreibung="Hier steht die Frage 1">
<antwort name="Antwort1" beschreibung="Falsch" />
<antwort name="Antwort2" beschreibung="Richtig" />
<antwort name="Antwort3" beschreibung="Falsch" />
</frage>
</thema02>
Die einzelnen Infos lade ich in einzelne Arrays:
PHP:
var XMLdaten = new XML();
XMLdaten.ignoreWhite=true;
XMLdaten.load("daten/xmltest.xml");
XMLdaten.onLoad = function(success) {
if (success) {
anzahlFragen = XMLdaten.firstChild.childNodes.length;
anzahlAntworten = []; //neues Array
for (var i=0; i<anzahlFragen; i++) {//alle Fragen durchgehen
//länge der Antworten Ojekte der jeweiligen Frage auslesen und ins array schreiben
anzahlAntworten[i] = XMLdaten.firstChild.childNodes[i].childNodes.length;
}
namen = [];
beschreibungen = [];
fragen = [];
themen = [];
richtig_falsch = [];
hauptueberschrift = [];
for (var i=0; i<anzahlFragen; i++) {//für jede Frage
namen[i] =[];
beschreibungen[i] = [];
fragen[i] = [];
themen[i] = [];
richtig_falsch[i] = [];
hauptueberschrift[i] = [];
for (var j=0; j<anzahlAntworten[i]; j++) {//für alle Antworten der jeweiligen Frage
//auslesen
namen[i][j] = XMLdaten.firstChild.childNodes[i].childNodes[j].attributes.name;
beschreibungen[i][j] = XMLdaten.firstChild.childNodes[i].childNodes[j].attributes.beschreibung;
fragen[i][j] = XMLdaten.firstChild.childNodes[i].attributes.beschreibung;
themen[i][j] = XMLdaten.firstChild.attributes.name;
richtig_falsch[i][j] = XMLdaten.firstChild.childNodes[i].childNodes[j].attributes.beschreibung;
hauptueberschrift[i][j] = XMLdaten.firstChild.attributes.beschreibung;
};
};
}
}
So kann ich das Thema 01 inkl. Beschreibung, Frage und Antworten problemlos auslesen.
Das klappt allerdings nur für das Thema 01.
Wie müsste ich die Abfrage verändern, um z.B. auch an Thema02 zu kommen? In der XML gibt es übrigens 5 Themen, die ich alle auslesen müsste.
Ich freue mich über jede Hilfe.
Cornel