如何根据id属性值选择xml元素以actionscript 3中的“something”开头

时间:2011-10-06 13:51:51

标签: actionscript-3 flex4 xml-parsing

说,我有一个如下的xml:

public static var keywords:XML = <keywords>
   <tag key="html" type="tag"/>
   <tag key="htmlNew" type="attr"/>
   <tag key="head" type="attr"/>
   <tag key="body" type="attr"/>
</keywords>;

我需要按属性值搜索此xml。如果用户提供输入为“html”,那么我需要将两个<tag key="html" type="tag"/> <tag key="htmlNew" type="attr"/>节点作为XMLList返回。它类似于通过xml属性进行类型搜索。请任何人提供任何解决方案或建议。对于直接属性匹配,我使用了以下代码:

var closeMatchList:XMLList = xml.tag.(@key == "html") as XMLList;

仅返回<tag key="html" type="tag"/>代码

这种解决方案是否可行?请任何人提供任何解决方案。我长期坚持这个问题。提前谢谢。

2 个答案:

答案 0 :(得分:4)

如果没有第三方库,您也可以这样做:

keywords.tag.(attribute("key").indexOf("html")==0)

答案 1 :(得分:0)

ActionScript3(xpath-as3)有一个XPath库,可以轻松完成。

public static var keywords:XML = ...;

var thePath:String = "/keywords/tag[starts-with(@key, 'html')]";
var html:NodeSet = XPath.evaluate(thePath, keywords);  

可以看到使用该库的其他一些方法over here