PHP ile MXML'yi serisini nasıl?

1 Cevap php

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 biçimi:

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

Tüm etiketler için gerekli önek: O "mx" mı? Evet, ben XML_Serialize (": bir şey mx" benim veri yapısı alanlarını yeniden adlandırma olmadan) Her etiketinden önce koyun yapabilir?

İşte benim seçenekler XML_Serialize:

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

1 Cevap

Sen serileştiriciye de ad alanı bildirimi kaçırıyorsun. Bu gibi serileştiriciye için bir ad ekle:

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

Ayrıca o senin $ aOptions dizisi eklemek olabilir:

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

Ad gerekli olup olmadığını açısından - bu gerçekten XML bildirimleri gibi göründüğüne bağlıdır. Varsayılan ad zaten MXML'ye ayarlanırsa, o zaman - onun gerekli değildir.