doutu4335 2010-04-27 14:06
浏览 15
已采纳

如何用PHP反序列化MXML?

I have an array structure that have to be converted to MXML. I know of PEAR XML_Serialize extension but it seems the output format it produces is a bit different.
PHP generated XML:

<zone columns="3">
        <select column="1" />
        <select column="4" />
</zone>

MXML format:

<mx:zone columns="3">
        <mx:select column="1" />
        <mx:select column="4" />
</mx:zone>

Is that "mx:" prefix required for all the tags? If yes, can I make the XML_Serialize put it before each tag (without renaming my data structure fields to "mx:something")?

Here are my options for XML_Serialize:

$aOptions = array('addDecl' => true, 'indent' => "    ", 'rootName' => 'template', 
'scalarAsAttributes' => true, 'mode' => 'simplexml');
  • 写回答

1条回答 默认 最新

  • doujiu3768 2010-04-27 14:14
    关注

    You're missing the namespace declaration in your serializer. Add a namespace to your serializer like this:

    $serializer->setOption('namespace', array('mx', 'http://ns.adobe.com/mxml/2009'));
    

    You could also add it your $aOptions array:

    $aOptions = array(
      'addDecl' => true,
      'indent' => "    ",
      'rootName' => 'template',
      'scalarAsAttributes' => true,
      'mode' => 'simplexml',
      'namespace' =>array('mx', 'http://ns.adobe.com/mxml/2009')
    );
    

    In regard to whether the namespace is required - this really depends on what your XML declarations look like. If the default namespace is set to MXML already, then no - its not required.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 python的qt5界面
  • ¥15 无线电能传输系统MATLAB仿真问题
  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀
  • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100