PDA

Volledige versie bekijken : Via een button specifieke childnodes uitlezen.


Surfinnetje
%Europe/Berlin %882 %2007, 21:10
Ik wordt er onderhand helemaal para van.
Ik heb een XML file met daarin de 12 provincies en in die 12 provincies staan weer winkeladressen.
Zoals hieronder, maar dan 12 keer:

<friesland>
<winkel naam = "VENEBOER SPORT 2000" nummer = "2" adres = "ZUIDKADE 27" postcode = "9203 CL" plaats ="DRACHTEN" telefoon = "0512-520200">Blup</winkel>

<winkel naam = "EVINK INTERSPORT VOF" nummer = "2" adres = "NOORDERBUURT 30" postcode = "9203 AM" plaats ="DRACHTEN" telefoon = "0512-511300">Blup</winkel>

<winkel naam = "DIEPENMAAT SPORT" nummer = "2" adres = "VOORSTREEK 40" postcode = "8911 JR" plaats ="LEEUWARDEN" telefoon = "058-2120244">Blup</winkel>

<winkel naam = "SAKE SAKELIJK B.V." adres = "POSTBUS 81" postcode = "9270 AB" plaats ="ZWAAGWESTEINDE" telefoon = "0511-442900">Blup</winkel>
</friesland>

Deze heb ik heel leuk ingeladen in Flash. In flash heb ik dan zo'n kaartje met 12 buttons van elke provincie. Je voelt hem waarschijnlijk al...Ik wil als je op Friesland klikt alleen de adressen uit Friesland. Het bovenstaande stukje XML dus.

Nu laad ik mijn XML als volgt in:

stop();
//maak een nieuw xml object
oXML = new XML();
//negeer whitespace in het file
oXML.ignoreWhite = true;
//roep de LoadProductData functie aan als de XML-file is geladen
oXML.onLoad = LoadProductData;
//laad de xml-file
oXML.load("shops.xml");
oXML.onLoad = function(succes) {
if (succes) {
LoadProductData();
trace(oXML.childNodes.length+" loaded ");
} else {
trace("ERROR No XML file: "+file+" found");
}
aNaam = new Array();
aAdres = new Array();
aPostcode = new Array();
aPlaats = new Array();
aTelefoon = new Array();
aInfo = new Array();
vBaseNode = oXML.childNodes[0];
vBaseNode = oXML.childNodes[1];
vBaseNode = oXML.childNodes[2];
vBaseNode = oXML.childNodes[3];
vBaseNode= oXML.childNodes[4];
vBaseNode = oXML.childNodes[5];
vBaseNode = oXML.childNodes[6];
vBaseNode = oXML.childNodes[7];
vBaseNode = oXML.childNodes[8];
vBaseNode = oXML.childNodes[9];
vBaseNode = oXML.childNodes[10];
vBaseNode = oXML.childNodes[11];
trace(oXML.childNodes[2].nodeName);
shopLEN = vBaseNode.childNodes.length;
for (i=0; i<vBaseNode.childNodes.length; i++) {
aNaam[i] = vBaseNode.childNodes[i].attributes["naam"];
aAdres[i] = vBaseNode.childNodes[i].attributes["adres"];
aPostcode[i] = vBaseNode.childNodes[i].attributes["postcode"];
aPlaats[i] = vBaseNode.childNodes[i].attributes["plaats"];
aTelefoon[i] = vBaseNode.childNodes[i].attributes["telefoon"];
aInfo[i] = vBaseNode.childNodes[i].firstChild.nodeValue;
mcleeg.attachMovie("mcShop", "mcShop"+i, i);
}
};

Wat voor script moet ik nu op mijn frieslandbutton mikken?

Laiverd
%Europe/Berlin %885 %2007, 21:15
Kan op verschillende manieren, maar je kunt (om het een beetje overzichtelijk te houden) per provincie een array kunnen maken. In iedere array sla je dan de winkels op als object waarbij zaken als 'naam', 'nummer' etc. properties van het object worden. Klik je dan op de friesland-button dan spreek je de frieslandArray aan en kun je met een for ... loop door de objecten in die Array.

John

Surfinnetje
%Europe/Berlin %888 %2007, 21:19
Hey thanks voor je reactie :)
Maar ik ben nog een beginner met Action script, dus hoe krijg ik in dit geval dan de zooi in die array? Want ik zat daar al wel aan te denken inderdaad, maar ik loop een beetje vast...

Surfinnetje
%Europe/Berlin %925 %2007, 22:12
Heb nu

friesland = new Array(oXML.childNodes[0];)

Maar volgens mij sla ik nu gigantisch de plank mis...

.Tine.
%Europe/Berlin %941 %2007, 22:35
Volgens mij... moet jij de naam van je topic even veranderen ;) :D.
Want de huidige zegt zo goed als niets over je probleem... :)

Surfinnetje
%Europe/Berlin %952 %2007, 22:51
Zo beter? :p

Laiverd
%Europe/Berlin %982 %2007, 23:35
Lijkt me beter ;) Anyway: heb even een voorbeeldje met uitgebreide uitleg in elkaar gefietst: http://home.hccnet.nl/john.mulder/flash/xml_parse_example.zip

Succes,
John

Surfinnetje
%Europe/Berlin %636 %2007, 15:16
Het werkt al, in ieder geval harstikke bedankt :)