XPath i ActionScript - Meget nemmere XML!
Alle som har prøvet at arbejde bare lidt med XML i ActionScript via XML klassen ved hvor bøvlet det er, et til tider sandt mareridt, særligt hvis den XML man loader er bare en anelse kompliceret.
Men, rent faktisk, så findes der en udokumenteret XPathAPI i Flash, der giver adgang til at bruge XPath, som er en standardiseret måde at “søge” i et XML dokument, og den gør livet meget, meget lettere!
Selvom der nu efterhånden er kommet dokumentation på den, det ligger bare ikke standard i Flash, så har jeg lige lavet et lille eksempel.
Først en test_xml.xml som vi kan loade:
<?xml version="1.0" encoding="UTF-8"?>
<firma>
<afdeling>
<medarbejder>
<navn>Hans Hansen</navn>
<titel>Receptionist</titel>
</medarbejder>
<medarbejder>
<navn>Sofie Sofiesen</navn>
<titel>Sekretær</titel>
</medarbejder>
<medarbejder>
<navn>Poul Poulsen</navn>
<titel>Revisor</titel>
</medarbejder>
</afdeling>
</firma>
Dernæst noget ActionScript: Koden er meget simpel og burde være rimeligt selvforklarende, så går ikke i detaljer med hvad der gør hvad, men grundlæggende loader den et xml dokument, lave en søgning efter medarbejdernes navne via XPath og udskriver dem. Super simpelt og super overskueligt Dokumentation af XPathAPI klassen: Rod Gonda’s indlæg om den: Hvis du vil vide mere om XML og Flash, så har Flashforum.dk lavet et par udemærkede videotutorials om den “almindelige” måde at arbejde med XML på:
import mx.xpath.XPathAPI;
var rssfeed_xml:XML = new XML();
rssfeed_xml.ignoreWhite = true;
rssfeed_xml.onLoad = function(success:Boolean) {
if (success) {
var namePath:String = "/firma/afdeling/medarbejder/navn";
var name_array:Array = XPathAPI.selectNodeList(this.firstChild, namePath);
for(var i=0; i<name_array.length; i++) {
trace(name_array[i].firstChild.nodeValue);
}
} else {
trace("error loading XML");
}
};
rssfeed_xml.load("test_xml.xml");
XPathAPI.pdf
XPath for ActionScript
Tutorials - FlashForum.dk


