У меня есть два XML-файла, дефект. xml и employee.xml. Но файлы имеют общее поле, но с разными именами в каждом файле. Я хочу, чтобы оба файла были объединены в одну коллекцию массивов.
Структура моего файла дефекта.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}"/>
когда "assignTo" совпадает с "employeeName", я хочу, чтобы "employeeId" был добавлен в коллекцию arrayListList. Как я могу это сделать?
Как перебрать коллекцию массивов?
А как проверить, равно ли поле назначенное поле в дефекте в поле employeeName в employeeList? Кто-то ведет меня ..
EDIT
Хорошо, теперь я могу сравнить два поля, назначенных для дефектного списка и сотрудника Имя сотрудника. Спасибо Саймону:
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 к этому конкретному элементу массива, чтобы я мог использоватьfectList в качестве поставщика данных для идентификатора сотрудника отображения сетки данных? Может кто-то помочь мне с этим.
РЕШЕНИЕ
Я нашел решение. Вот код:
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;
}
}
}
}
Теперь, если я задаю поле данных как "employeeId" в сетке данных с дефектом ListL в качестве поставщика данных, я получаю идентификатор сотрудника соответствующего Имени сотрудника.