2009-07-22 99 views
2

考虑这种情况:的Javascript E4X:选择基于属性值的节点

使用JavaScript/E4X,在非浏览器使用场景(一个Javascript HL7集成引擎),有拿着一个XML片段变量可能有多个重复节点。

<pets>  
<pet type="dog">Barney</pet> 
<pet type="cat">Socks</pet> 
</pets> 

代码:

var petsXml; // pretend it holds the above xml value 
//var cat = petsXml['pet']..... ? 

问题:使用E4X,你怎么能选择与type属性持有字符串 '猫' 的值正确的宠物节点?

更新:

一些学习收获与E4X:

  • 选择通过属性值的单/第一个节点:var dog = petsXml.(@type == "dog");
  • 从一个节点的特定属性得到一个值:var petType = [email protected];

回答

2
var petsXml; 
var catList = petsXml.*.(@type == "cat"); 

请参阅here上的“过滤器”here或“参数化定位”。

+0

感谢Pianoman。这工作得很好。尽管我已成功实施了解决方案petsXml。(@ type ==“cat”);星号是否表示会返回倍数,而没有找到第一个匹配的? – 2009-07-22 17:30:42

相关问题