Shellway的博客

Flash的XPathAPI类(一)(译自flash文档XPathAPI.pdf)

XPathAPI类

ActionScript类名:mx.xpath.XPathAPI

XPathAPI类允许你在Macromedia Flash中做一些简单的XPath搜索。这对于搜索基于节点名和属性值的XML包可能是非常有用的。换句话说,你可以使用XPathAPI方法在一个XML文档中快速找到节点和属性。

为了在Flash中搜索XPath,你必须首先在你的Flash库中包含XPathAPI类,你可以通过添加DataBindingClasses组件(如果它还未被添加的话)。如果你已经建立了一些绑定,那么这个类可能已经被自动包含进去了。否则,你必须从公共库中选择次类(Window【窗口】 > Common Libraries【公共库】 > Classes【类】)。
从Classes.fla库面板中,你可以拖出一个DataBindingClasses组件的副本到你的当前Flash文档的库中,然后输入:import mx.xpath.XPathAPI导入(import)XPathAPI类,或者在访问此类的方法(mx.xpath.XPathAPI.method_name)时使用其完全限定类名作为前缀。

Flash支持以下路径表达式:

类型 例子
绝对路径 /item/title
相对路径 title(若上下文节点是<item>)
通配符 () //title 检索所有的<title> 元素,不管父节点是什么。
判定(谓语)表达式,使用 =、AND、或者 OR /item/title[@version=’current’]
or:
/item/title[@version=’current’ AND
@post=’today’]

XPathAPI类的方法归纳
下表列出XPathAPI类的可用方法:

方法 描述
XPathAPI.getEvalString() 针对一个指定节点,获取相应的估值字符串。
XPathAPI.selectNodeList() 检索指定节点层次中的所有节点值。
XPathAPI.selectSingleNode() 检索一个指定节点层次的第一个节点中的节点值。
XPathAPI.setNodeValue() 设定指定节点或属性的值。