Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flex将XML上传到datagrid/数据库_Xml_Apache Flex_Datagrid_Upload_Arraycollection - Fatal编程技术网

Flex将XML上传到datagrid/数据库

Flex将XML上传到datagrid/数据库,xml,apache-flex,datagrid,upload,arraycollection,Xml,Apache Flex,Datagrid,Upload,Arraycollection,在我们的项目中,我们需要浏览并上传一个XML文件,并将其显示在datagrid上,编辑网格,然后将内容保存到数据库中。我能够看到从特定文件夹中提取XML并显示在datagrid上的示例,但看不到任何浏览XML然后上传的示例。如果有人能给我提供一些示例或示例代码,那就太好了。我们的XML看起来像: <VisitImportList> <Visit> <AuditDetails> <UpdateUser>

在我们的项目中,我们需要浏览并上传一个XML文件,并将其显示在datagrid上,编辑网格,然后将内容保存到数据库中。我能够看到从特定文件夹中提取XML并显示在datagrid上的示例,但看不到任何浏览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>
现在我的arraycollection(tempCollection)中有了数据。但它包含通用对象,我需要将它们转换为访问对象。因此,我想在ArrayCollection中循环,将对象转换为特定的自定义访问对象,然后将它们添加到另一个集合中(我确定这不是正确的方法,但我无法找到替代方法):

for(变量i:int=0;i
那么,有人可以帮助您循环ArrayCollection并将AS对象转换为custom Visit对象,然后添加到另一个ArrayCollection或更简单的方法吗

谢谢


Harish

如果您正在使用AIR应用程序,您可以使用Flex中的文件和文件流对象轻松访问计算机中的资源

获取XML对象,然后从其item命令将其转换为XMLListCollection,即

var xmlProvider:XMLListCollection = new XMLListCollection(xml.Visit);
将此提供程序设置为您的数据网格,并编写脚本以按您所需的方式上载和保存此数据

但是,如果您正在编写web应用程序,则应该这样做。您无法访问客户端上不在flex temp文件路径中的资源。或者,您必须使用“”为客户机上的文件夹/文件授予flex访问权限。在这种情况下,应使用相同的空气api

但是,如果您也不希望这样做,那么显然您必须在服务器上上载文件,在客户端使用HTTPService读取该对象,创建XMLListCollection对象并将数据加载到DataGrid中。这会有帮助的


  • 谢谢法希姆。我能够使用用于浏览/上传和XML/XMLListCollection的FileReference在datagrid上显示。但是现在我在保存到数据库时遇到了另一个问题。我已将此附在主要问题之后。请帮助任何人这是最简单的方法。。。真棒的法希姆,几乎解决了除了一个问题:)。visit.visitDate=VisitNode.visitDate;这里我得到一个错误:类型强制失败:无法转换XMLList@1d76eee9迄今为止。我需要格式化日期吗?如何请。对不起我的坏…新的日期(字符串)修复它。非常感谢法希姆。谢谢。我会认为你的答案是对的。非常感谢:)。如果还有其他问题,将返回此处:)
         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);
    }
    
    var xmlProvider:XMLListCollection = new XMLListCollection(xml.Visit);