我们的项目需要浏览和上传 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,将对象转换为特定的自定义访问对象,然后将它们添加到另一个集合(我确定这不是正确的方法,但我无法想出一个备用):
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 对象转换为自定义访问对象,然后添加到另一个 ArrayCollection 或更简单的方法来执行此操作
谢谢
哈里什