mx.xpath.XPathAPI n'existe plus en AS3 ?
Flex 4 débutant.
Je cherche à utiliser l'import mx.xpath.XPathAPI dans un fichier .as
Flash Builder indique :"1172: La définition mx.xpath:XPathAPI est introuvable."
J'ai de nombreuses expressions xpath existantes dans des fichiers xslt qui me servaient pour la présentation html ( le schema classique xml+xslt => html) .
Je souhaite réutiliser, sans me poser trop de questions, ces expressions xpath existantes (et parfois complexes) pour porter ma présentation vers du flex 4.:cry:
J'ai l'impression que cette librairie a disparue à partir de AS3. Je me trompe ?
Cette librairie a changée de nom ? Dois-je utiliser une librairie externe ?
Merci d'avance.
Pour conclure sur xpath et E4X
D'abord des infos sur E4X comparé à xpath:
http://wso2.org/project/mashup/0.2/d...t.html#literal
Comme on s'en apercoit E4X n'est pas satisfaisant car l'expression xpath n'est pas interprétée à la volée.
Une solution est donnée par Memorphic
Cela semble bien fonctionner avec un code plus simple que E4X.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
import memorphic.xpath.XPathQuery;
import memorphic.xpath.parser.*;
var xpath:String = "/ViewConfig/ListSite/Site/@name"
var ret:ArrayList=new ArrayList();
var resultXml:XML = new XML(myXML);
var myQuery:XPathQuery =new XPathQuery(xpath);
var resultXPath:XMLList = myQuery.exec(resultXml);
for each (var site:XML in resultXPath) {
ret.addItem(site.toString());
}
// ancien code en E4X
// for each (var site:XML in resultXml.ListSite.Site) {
// ret.addItem((site.@name).toString());
// } |
Tour ceci n'a de sens que si l'on souhaite utiliser des xpath dynamiques, c'est à dire des expressions xpath construites en fonction du contexte.
Reste à voir des problemes éventuels de performance dont il faudra peut-etre se méfier.
Merci encore.