0
XML array element benaderen via attribuut-variabele
Is het mogelijk met XML als onderstaand voorbeeld het juiste weerstation te benaderen adhv het attribuut 'id'?
In PHP zou het volgende werken bijvoorbeeld: …..weerstations->weerstation[@id="6273"]
Ik zie in iRidium voorbeelden wel gebruik van het @ bij XML-attribute referenties, maar krijg het nog niet werkend.
Uiteraard kan ik de arrayelementen wel gewoon benaderen via weerstation[nr], maar als de volgorde dan eens veranderd bij de xml-bron, moet ik de code ook aanpassen. Een zoekscriptje kan uiteraard ook, maar dat is m'n vraag niet :)
In PHP zou het volgende werken bijvoorbeeld: …..weerstations->weerstation[@id="6273"]
Ik zie in iRidium voorbeelden wel gebruik van het @ bij XML-attribute referenties, maar krijg het nog niet werkend.
Uiteraard kan ik de arrayelementen wel gewoon benaderen via weerstation[nr], maar als de volgorde dan eens veranderd bij de xml-bron, moet ik de code ook aanpassen. Een zoekscriptje kan uiteraard ook, maar dat is m'n vraag niet :)
<weerstations>
<weerstation id="1846">
<stationcode>
1846
</stationcode>
</weerstation>
<weerstation id="6273">
<stationcode>
6273
</stationcode>
</weerstation>
<weerstation id="3120">
<stationcode>
3120
</stationcode>
</weerstation>
</weerstations>
Customer support service by UserEcho
Gisteren nog even nagevraagd bij de ontwikkelaars en het blijkt niet mogelijk om dit op de 'php manier' te doen.
Wordt dus toch een loopje waarin je bekijkt wat het id is. :D
Ik had vergeten te noemen dat het sowieso al werkt door de array van weerstations te benaderen via de volgorde-index; 'k heb alleen gemerkt dat de bron hier nog wel eens verandering in brengt (of iRidium leest ze niet consequent in), waardoor je dus zo maar ineens een ander weerstation op die index hebt staan. Misschien uiteindelijk toch maar een zoekscriptje dus :)
(…).weerstations.weerstation[1].(…) // in het voorbeeld hieronder zou je dan weerstation met ID 6273 uitlezen
Ik ben wel benieuwd waar het @ in XML-benadering dan voor is; zal nog even kijken waar ik dat example had gevonden. Ging om weerdata vanaf Yahoo, en daar gebruiken ze @'s in de iRidium-code. Benaderen van een attribuut (property) van een XML-element ben ik nog niet achter namelijk; wellicht is het daarvoor?
xmlData.Weerstations.Weerstation[xx]("@id")…?! of misschien:xmlData.Weerstations.Weerstation[xx]["@id"]…?
Dat was me uit het voorbeeld die ik het gedownload niet duidelijk, omdat de bron xml data daarvan een zootje is.
IR.AddListener(IR.EVENT_START,0,function()
{
IR.Log("ID of child 1 is: " + xmldata.ROOT.CHILD[0]['@ID']);
IR.Log("ID of child 2 is: " + xmldata.ROOT.CHILD[1]['@ID']);
});
var xmldata = new XML("<ROOT><CHILD ID='1'></CHILD><CHILD ID='2'></CHILD></ROOT>");