PDA

Volledige versie bekijken : XML vraag (waarschijnlijk heel dom dit )


Peetscheet
%Europe/Berlin %637 %2007, 15:17
Ik ben nog steeds bezig met mn xml menutje uit mysql/php -> xml -> flash

Ik krijg nu het menu te zien, met titel, maar ik kreeg de id (nodig om de link te laten werken) mee te sturen. Ik krijg nu een lange lijst met id nummers door in mn url als ik op een knop klik. Volgens mij is mijn hele manier van gegevens verwerken in flash niet helemaal ok, maar voor de titels werkt het...

Mn xml die ik uit php genereer ziet er zo uit:
<portfolio>

<boek>
<item_titel>BeProud</item_titel>
<item_id>1</item_id>
</boek>

<boek>
<item_titel>Dichter en de Held</item_titel>
<item_id>2</item_id>
</boek>

<boek>

<item_titel>Ernest van der Kwast</item_titel>
<item_id>3</item_id>
</boek>

<portfolio>

Actionscript:

xmlDoc = new XML();
xmlDoc.ignoreWhite = true;
xmlDoc.load("products.php");
xmlDoc.onLoad = verwerkXML;

dupMovie = function () {

menu_item.duplicateMovieClip("menu_item"+j, j, {_y: 15 + j*18}, {_x: 20});
}

function verwerkXML(ok) {
if (ok) {

boeken = this.firstChild.childNodes;



for (j=0; j<boeken.length; j++) {

trace(j);

dupMovie();

boek = boeken[j].childNodes;
for (i=0; i<boek.length; i++) {
if (boek[i].nodeName == "item_titel") {
_root.menu_item0.veld.text += boek[i].firstChild.nodeValue+"\n";
_root.menu_item1.veld.text += boek[i].firstChild.nodeValue+"\n";
_root.menu_item2.veld.text += boek[i].firstChild.nodeValue+"\n";


}
if (boek[i].nodeName == "item_id") {
_root.menu_item0.id_nr.text += boek[i].firstChild.nodeValue+"\n";
_root.menu_item1.id_nr.text += boek[i].firstChild.nodeValue+"\n";
_root.menu_item2.id_nr.text += boek[i].firstChild.nodeValue+"\n";


}
}
}
} else {
trace("xml lees fout.");
}
}

Ik ben het echt ff kwijt nu, kom er totaal niet uit.
Mn xml / flash kennis is ook vrij klein...

Kan iemand me misschien uitleggen hoe ik die xml gegevens goed kan binnenhalen?

Groeten Peter

CremFresh
%Europe/Berlin %661 %2007, 15:53
Hey ik hede code wat voor je aangepast:

xmlDoc = new XML();
xmlDoc.ignoreWhite = true;
xmlDoc.load("products.php?num="+random(999"));
xmlDoc.onLoad = function (ok:Boolean) {
if(ok){
trace("xml loaded");
var xmlNode:XML = this.firstChild;
for (var i=0;i<xmlNode.childNodes.length;i++){
var temp = menu_item.duplicateMovieClip("menu_item"+i, i, {_y: 15 + j*18}, {_x: 20});
temp.veld.text += xmlNode.childNodes[i].childNodes[0].childNodes+"\n";
temp.id_nr.text +=xmlNode.childNodes[i].childNodes[1].childNodes+"\n";

}
}else{
trace("xml not loaded");
}
}


Je xml had een fout in de end node.
je vergeet een "/" in de node.

Hier goeie voorbeeld

<portfolio>
<boek>
<item_titel>BeProud</item_titel>
<item_id>1</item_id>
</boek>
<boek>
<item_titel>Dichter en de Held</item_titel>
<item_id>2</item_id>
</boek>
<boek>
<item_titel>Ernest van der Kwast</item_titel>
<item_id>3</item_id>
</boek>
</portfolio>