我从PHP脚本获取XML响应,我使用[lastResult]属性访问该脚本
问题是如下:
XML结构:
<Main>
<Category1>
<Data Name="Data1">
<Item>
<Name>foo</Name>
<Info>bar</Info>
</Item>
<Item>
<Name>baz</Name>
<Info>FOO</Info>
</Item>
</Data>
<Data Name="Data2">
</Data>
</Category1>
<Category2>
</Category2>
</Main>
现在我将DataGrid的dataProvider指定为
'lastResult.Category1.Data.(@Name == "Data1").Item'
这个工作得足够好&amp;我的数据输出正确。我唯一需要的是如何访问<Data>
标签的@Name属性
我可以输出姓名&amp;通过指定项目的信息:
'Name'
'Info'
但是当我选择Data.Item作为dataProvider时,我对如何指定父<Data>
标签的@Name属性毫无头绪。
从我可以做到的,我需要向父节点上升1级,但我找不到任何引用,以便在使用[lastResult] dataProvider时如何上升一级(所有都使用XMLListCollection ::父())
任何帮助表示赞赏。
的问候,
Nisheeth Barthwal
答案 0 :(得分:0)
lastResult.Category1.Data.(@Name == "Data1").Item
为您提供在Data1中找到的项目的XMLList。每个项目都是XML类型,您可以调用parent()
函数获取父节点:
//get first item
var item:XML = lastResult.Category1.Data.(@Name == "Data1").Item[0];
trace("Data.@Name: " + item.parent().@Name);
编辑:要使其在DataGrid中运行,您需要使用列的labelFunction
属性。将其设置为:
function formatItem(item:Object, column:DataGridColumn):String {
return (item as XML).parent().@Name;
}