У меня есть два xml-файла, дефект. xml и employee.xml. Но файлы имеют общее поле, но с разными именами в каждом файле. Я хочу, чтобы оба файла были объединены в одну коллекцию массива.Как получить два xml-файла в одной коллекции массивов в flex?
Структура моего файла 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}"/>
, когда «assignTo» соответствует «employeeName», я хочу, чтобы «employeeId» добавлялся в коллекцию массива defectList. Как я могу это сделать? Как пробивать массив массива?
И как проверить, соответствует ли назначенное поле в defectList полю employeeName в employeeList? Некоторые один наставит меня ..
EDIT
нормально, сейчас я могу сравнить два поля, assignedTo из defectList и employeeName из employeeList.Thanks Симону:
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 как dataprovider для идентификатора сотрудника DataTrend n display employee? Может кто-то помочь мне с этим.
РЕШЕНИЕ
я обнаружил решение. Вот код:
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;
}
}
}
}
Теперь, если я дам DataField как «EmployeeID» в сетке с defectList как DataProvider, я получаю идентификатор сотрудника соответствующего имени сотрудника.
ОК, я могу сравнить элементы. для этого. Но как добавить поле «EmployeeId» в коллекцию массива defectList? Есть идеи? – Angeline
Большое спасибо за вашу помощь. Я нашел решение :-) – Angeline