В нашем проекте есть требование просмотреть и загрузить файл XML и показать его на сетке данных, отредактировать сетку и затем сохранить содержимое в базе данных. Я могу видеть примеры, которые берут XML из определенной папки и показывают в сетке данных, но не в состоянии видеть какие-либо примеры, которые просматривают XML и затем загружают его. Было бы замечательно, если бы кто-то мог указать мне на примеры или некоторый пример кода. Наш XML выглядит так:
<VisitImportList>
<Visit>
<AuditDetails>
<UpdateUser>ADMIN</UpdateUser>
<UpdateTimestamp>2010-10-22T16:25:26.593Z</UpdateTimestamp>
</AuditDetails>
<VisitId>3</VisitId>
<MeasurementCollectionId>4</MeasurementCollectionId>
<WeightConfirmationCode>5</WeightConfirmationCode>
<PrefilledIndicator>true</PrefilledIndicator>
<VisitDate>2010-10-22T16:25:26.593Z</VisitDate>
</Visit>
<Visit>
<AuditDetails>
<UpdateUser>ADMIN</UpdateUser>
<UpdateTimestamp>2010-10-22T16:25:26.593Z</UpdateTimestamp>
</AuditDetails>
<VisitId>3</VisitId>
<MeasurementCollectionId>3</MeasurementCollectionId>
<BloodPressureConfirmationCode>4</BloodPressureConfirmationCode>
<PrefilledIndicator>true</PrefilledIndicator>
<VisitInvalidCode>1</VisitInvalidCode>
<VisitInvalidReasonText>No Dates</VisitInvalidReasonText>
</Visit>
</VisitImportList>
Хорошо. Я смог показать данные в сетке, используя FileReference для загрузки и XML / XMLListCollection. Теперь проблема в том, когда я пытаюсь сохранить в базу данных. Я не хотел создавать новую тему, поэтому добавил свой вопрос здесь:
private function saveVisit(event:MouseEvent): void
{
var decoder:SimpleXMLDecoder = new SimpleXMLDecoder();
var data:Object = decoder.decodeXML(xmlDoc);
var array:Array = ArrayUtil.toArray(data.VisitImportList.Visit);
tempCollection = new ArrayCollection(array);
Теперь у меня есть данные в моей коллекции массивов (tempCollection). Но он содержит общие объекты, и мне нужно преобразовать их в объект посещений. Поэтому я хочу пройтись по ArrayCollection, преобразовать объект в определенные пользовательские объекты Visit и затем добавить их в другую коллекцию (я уверен, что это неправильный способ, но я не могу придумать заместитель):
for (var i:int = 0; i < tempCollection.length; ++i)
{
model.visit = new Visit();
model.visit = Visit(tempCollection.getItemAt(i, 0)); // This line gives the error Type Coercion failed: cannot convert Object@1d4e4719 to com.model.Visit.
model.visit = tempCollection.getItemAt(i) as Visit; // This line always has Visit as null eventhough the tempCollection has 2 objects
model.pvList.visits.addItemAt(Visit, i);
}
Так может кто-нибудь помочь с тем, как перебрать ArraCollection и преобразовать объект AS в пользовательский объект Visit, а затем добавить в другой ArrayCollection ИЛИ более простой способ сделать это
Спасибо
Хариш