我们的项目中有一个要求,即浏览&;上传一个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)中有了数据。但它包含通用对象,我需要将它们转换为Visit对象。因此,我想循环浏览ArrayCollection,将对象转换为特定的自定义访问对象,然后将它们添加到另一个Collection(我确信这不是正确的方法,但我无法想出替代方法):
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中吗
谢谢
哈里什语