我有两个 xml 文件,缺陷。xml 和employee.xml。但是这些文件有一个共同的字段,但每个文件中的名称不同。我希望将这两个文件合并到一个数组集合中。
我的defect.xml 文件的结构是:
<defectList>
<defect>
<revId>123</revId>
<revType>IQA</revType>
<status>Review Pending</status>
<assignedTo>Angeline</assignedTo>
<loggedBy>chandran</loggedBy>
<closedDate>13-10-2009</closedDate>
</defect>
<defect>
<revId>124</revId>
<revType>IQA</revType>
<status>Review Pending</status>
<assignedTo>Aarthi</assignedTo>
<loggedBy>chandran</loggedBy>
<closedDate>15-10-2009</closedDate>
</defect>
<defectList>
还有我的employee.xml
<Employees>
<employee>
<employeeId>256148</employeeId>
<employeeName>Angeline</employeeName>
</employee>
<employee>
<employeeId>256158</employeeId>
<employeeName>Aarthi</employeeName>
</employee>
<Employees>
我在两个数组集合中获取了两个 xml 文件:
<mx:Model id="employeeXML" source="assets/employee.xml"/>
<mx:ArrayCollection id="employeeList" source="{employeeXML.employee}"/>
<mx:Model id="defectXML" source="assets/defect.xml"/>
<mx:ArrayCollection id="defectList" source="{defectXML.defect}"/>
当“assignedTo”匹配“employeeName”时,我希望将“employeeId”添加到defectList 数组集合中。我怎样才能做到这一点?如何遍历数组集合?
以及如何检查defectList中的assignedTo字段是否等于employeeList中的employeeName字段?有人指导我..
编辑
好的,现在我可以比较两个字段,defectList 的assignedTo 和employeeList 的employeeName。感谢Simon:
var defect:Object;
var employee:Object;
for each (defect in defectList)
{
for each (employee in employeeList)
{
if(defect.assignedTo == employee.employeeName)
{
// defectList.addItem(employee.employeeId);
// I tried this,but it is wrong .
}
}
}
但是如何将employeeId 字段添加到该特定数组元素,以便我可以使用defectList 作为datagrid n 显示员工ID 的数据提供者?有人可以帮我弄这个吗。
解决方案
我已经找到了解决方案。这是代码:
public function init():void{
var defect:Object;
var employee:Object;
for each (defect in defectList)
{
for each (employee in employeeList)
{
if(defect.assignedTo == employee.employeeName)
{
var id:Object;
id=employee.employeeId;
defect["employeeId"]=id;
}
}
}
}
现在,如果我在 datagrid 中将 datafield 作为“employeeId”,defectList 作为 dataprovider,我将获得相应员工姓名的员工 ID。