В конечном результате важен конечный результат!

понедельник, февраля 20, 2006

Xpath для ActionScript

Роб Гонда (Rob Gonda) написал пост о том, как использовать XPath в ActionScript. Собственно говоря, я привожу перевод:

Flash MX 2004 имеет недокументированный класс для работы с XPath. Получить доступ к нему вы сможете перетаскивая DataBindingClass на stage (windows – other panels – classes), а затем просто импортировать mx.xpath.XPathAPI. Это работает отлично, что собственно я демонстрирую на примере:

import mx.xpath.XPathAPI;
var rssfeed_xml = new XML("<xml><level id='1' price='100'>first Level</level><level id='2' price='200'>second Level</level><level id='3' price='300'>third Level</level></xml>");
rssfeed_xml.ignoreWhite = true;
var titlePath:String = "/xml/level[@id=1]";
title_array = XPathAPI.selectNodeList(rssfeed_xml.firstChild, titlePath);
for (var i = 0; i<title_array.length; i++) {
trace(title_array[i].attributes.id);
}

Итак, я загрузил Xpath open source API c Factor Studio. ПРосто распакуйте файл вот сюда: F:\Documents and Settings\[user]\Local Settings\Application Data\Macromedia\Flash MX 2004\en\Configuration\Classes\.
Теперь вы можете импортировать и преспокойно работать с ним - поддерживается и объединения и запросы и еще много чего интересного.

import com.xfactorstudio.xml.xpath.*;


var rssfeed_xml = new XML("<xml><level id='1' price='100'>first Level</level><level id='2' price='200'>second Level</level><level id='3' price='300'>third Level</level></xml>");
var levels = XPath.selectNodes(rssfeed_xml,"/xml/level[@price>150]");
for (var i = 0; i<levels.length; i++) {
trace(levels[i].attributes.id);
}


import com.xfactorstudio.xml.xpath.*;


var rssfeed_xml = new XML("<xml><level id='1' price='100'>first Level</level><level id='2' price='200'>second Level</level><level id='3' price='300'>third Level</level></xml>");
var levels = XPath.selectNodes(rssfeed_xml,"/xml/level[@id=1] | /xml/level[@id=2]");
for (var i = 0; i<levels.length; i++) {
trace(levels[i].attributes.id);
}

4 комментария:

magius комментирует...

все прекрасно работает и без перетаскивания чего-либо на stage

и, между прочим, класс xpath вполне себе документирован :)
http://download.macromedia.com/pub/documentation/en/flash/fl8/XpathAPI.pdf

Constantiner комментирует...

2magius
Документирован с 8-й версии среды разработки Flash.

magius комментирует...

а владельцам предыдущих версий читать этот pdf нельзя? :)

injun #576871 комментирует...

А что делать тем, у кого нет Flash8? :)