Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.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
actionscript中的XML反序列化_Xml_Actionscript 3_Xml Parsing_Deserialization - Fatal编程技术网

actionscript中的XML反序列化

actionscript中的XML反序列化,xml,actionscript-3,xml-parsing,deserialization,Xml,Actionscript 3,Xml Parsing,Deserialization,我正在actionscript3中制作一个adobe premiere cc扩展,它从文件对话框加载一个XML文件 我想使用SimpleXMLDecoder将该XML文件反序列化到我的自定义对象中 // loads the data from the input XML file chosen by File Dialog var xmlDoc:XMLDocument = new XMLDocument(loadFile.data.toString()); var decoder:Simpl

我正在actionscript3中制作一个adobe premiere cc扩展,它从文件对话框加载一个XML文件

我想使用SimpleXMLDecoder将该XML文件反序列化到我的自定义对象中

// loads the data from the input XML file chosen by File Dialog 
var xmlDoc:XMLDocument = new XMLDocument(loadFile.data.toString()); 
var decoder:SimpleXMLDecoder = new SimpleXMLDecoder(true);
//Decode the input file
var data:Object = decoder.decodeXML(xmlDoc);                                  (1)
我有一个小的测试xml文件:

<?xml version="1.0" encoding="utf-8"?>
<P>
 <Data>                                                 (first data)
  <Name>Video1</Name>
  <Duration>250</Duration>
  <FPS>24</FPS>
  <Files>
    <CFile>
    <FileName>file 1</FileName>
    <Meta>1</Meta>
    </CFile>
  </Files>
 </Data>
 <Data>                                    (second data)
  <Name>Video2</Name>
  <Duration>250</Duration>
  <FPS>24</FPS>
  <Files>
    <CFile>
     <FileName>file 2</FileName>
     <Meta>2</Meta>
    </CFile>
    <CFile>
     <FileName>file 22</FileName>
     <Meta>22</Meta>
    </CFile>
    <CFile>
     <FileName>file 222</FileName>
     <Meta>222</Meta>
    </CFile>
  </Files>
 </Data>
 <Data>                                    (third data)
  <Name>Video3</Name>
  <Duration>250</Duration>
  <FPS>24</FPS>
  <Files/>
 </Data>
</P>

(第一数据) 视频1 250 24 文件1 1. (第二数据) 视频2 250 24 文件2 2. 文件22 22 文件222 222 (第三数据) 视频3 250 24

然后,我尝试将OBJECTPROXY类型的解码对象(1)强制转换为自定义定义的对象

我找不到如何自动强制转换,所以我正在尝试通过解码对象的元素进行手动foreach迭代,并将其放入所需的自定义定义对象中

问题是:当XML文件中的FILES标记仅包含一个CFILE(如XML中的第一个数据)时,该标记将转换为OBJECTPROXY类型,但当FILES标记包含多个CFILE(如XML中的第二个数据元素)时,该标记将转换为数组集合类型,最后,由于类型不一致,我无法遍历标记

对于这个特殊问题或actionscript3中的XML序列化,通常有什么帮助吗


提前感谢。

总的来说,这个网站上的问答必须集中在一个确定的主题上,所以让我们集中在这个主题上。您不能使用类型检测吗?例如:
if(x是ObjectProxy){…}else如果(x是ArrayCollection){…}
我试过这个,它工作了。。。谢谢