我的XML看起来像这样:
<?xml version="1.0" encoding="utf-8" ?>
<projects>
<project
id="1"
thumb="media/images/thumb.jpg"
>
<categories>
<id>1</id>
<id>2</id>
</categories>
<director>Director name</director>
<name><![CDATA[IPhone commercial]]></name>
<url><![CDATA[http://www.iphone.com]]></url>
<description><![CDATA[Description about the project]]></description>
<thumb><![CDATA[/upload/images/thumb.jpg]]></thumb>
</project>
</projects>
但我无法弄清楚如何根据类别ID过滤项目?有人知道该怎么办吗? :)
类似的东西:
projects.project.(categories.(id == 3))
只返回所有项目:(
答案 0 :(得分:0)
如果不使用任何自定义函数,这是一种更好的方法:
projects.project.(categories.id.contains(1))
contains
在XML或XMLList对象中检查单个值。
您可以使用额外的功能进行处理:
// check if any of the <id> nodes matches any of the given values
function containing(nodes, values) {
for each(var id in nodes) {
if(values.indexOf(parseInt(id)) !== -1) return true;
}
return false;
}
projects.project.(containing(categories.id, [1])); // matches the first project
projects.project.(containing(categories.id, [46])); // matches nothing
答案 1 :(得分:0)
它应该是projects.project..(id==3)
双点跳过任何节点,但如果你有更多的id,这是一个问题。
现在,如果我在动作脚本中执行此操作,这是我所有e4x知识的来源,我会这样做projects.project.containing.(id==3).parent()
我不确定JS是否支持该父方法,或者它是否拥有它。< / p>