Flash中自MX时代开始就已经有了xPath的方法.使用xPath遍历xml非常方便.下面是我今天小结的两个使用xPath的方法.
xPath类在Flash中的Class包中是看不到的,所以知道的人应该不多吧?至少我之前是不知道.MM把xPath类封装在DataBindingClasses这个库对象种了.而xPath只是其中的一个而已.下面是一个小应用
以下是代码片段: |
以下是代码片段: flash usage myXML = new XML(); myXML.onLoad = function(success) { path = "/employees/person[@gender=’f’]"; //注意单引号 arNodes = mx.xpath.XPathAPI.selectNodeList(this.firstChild, path); trace(arNodes); }; myXML.load("employee.xml"); |
值得注意的是MX 2004的xPath并不支持text()方法.更详细的方法可以看这篇介绍:Using XPath in Flash
对于MM所提供的xPath,我感觉比较遗憾的就是它并没有提供所有xPath的方法.当然,你可以使用反编译软件来导出她的类,不过那样和下面的方法相差无几了.
xfactorstudio提供的xPath类
xfactorstudio的xPath类是其自己所写的.不过我并不清楚是不是模仿了所有的xPath功能.用起来还是很方便的.而且他们的管方网站上也提供了相关的文档资料.下面是简单的用法.
先把com包放到同一文件夹下.然后新建个xml文件;
以下是代码片段: product.xml <products> <product SKU="7123734"> <name>Big Metal Pot</name> <price>19.95</price> </product> <product SKU="752585"> <name>Plate</name> <price>12.95</price> </product> <product SKU="4182476"> <name>Spoon</name> <price>4.95</price> </product> </products> |
以下是代码片段: import com.xfactorstudio.xml.xpath.*; myDoc = new XML(); myDoc.onLoad = function() { var products = XPath.selectNodes(this, "/products/product"); trace(products); }; myDoc.load("product.xml"); |
回复Comments
作者:
{commentrecontent}