actionscript中的XML反序列化
我正在actionscript3中制作一个adobe premiere cc扩展,它从文件对话框加载一个XML文件 我想使用SimpleXMLDecoder将该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
// 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){…}
我试过这个,它工作了。。。谢谢