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.

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

报告相同问题?

悬赏问题

  • ¥20 iOS绕地区网络检测
  • ¥15 python验证码滑块图像识别
  • ¥15 根据背景及设计要求撰写设计报告
  • ¥15 QT6颜色选择对话框显示不完整
  • ¥20 能提供一下思路或者代码吗
  • ¥15 用twincat控制!
  • ¥15 请问一下这个运行结果是怎么来的
  • ¥15 单通道放大电路的工作原理
  • ¥30 YOLO检测微调结果p为1
  • ¥15 DS18B20内部ADC模数转换器