2010-04-27 113 views
1

我有一個數組結構,必須轉換爲MXML。我知道PEAR XML_Serialize擴展,但它似乎產生的輸出格式有點不同。
PHP生成的XML:如何使用PHP反序列化MXML?

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

MXML格式:

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

是, 「MX」 要求所有的標籤前綴?如果是的話,我可以讓XML_Serialize把它放在每個標籤之前(不需要將我的數據結構字段重命名爲「mx:something」)?

這裏是我的選項XML_Serialize

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

回答

0

你錯過了你的序列化的命名空間聲明。命名空間添加到您的串行這樣的:

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

你也可以將其添加您的$ aOptions陣列:

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

至於是否需要命名空間 - 這真的取決於你的XML聲明看起來像。如果默認命名空間已經設置爲MXML,則不需要 - 它不是必需的。

+0

關閉,但現在我有雙「mx」: 2010-04-28 06:36:07