我想以下列格式创建XML
<?xml version="1.0" encoding="utf-8"?>
<categories>
<category>
<name>Hill Station</name>
<slug>hill_station</slug>
</category>
<category>
<name>Water Fall</name>
<slug>water_fall</slug>
</category>
<category>
<name>Wild Life</name>
<slug>wild_life</slug>
</category>
<category>
<name>Piligrim</name>
<slug>piligrim</slug>
</category>
<category>
<name>Archeology</name>
<slug>archeology</slug>
</category>
</categories>
我有一个数组,如下所示,我希望将数据库翻译成上述格式。
array(
(int) 0 => array(
'Category' => array(
'id' => '4',
'name' => 'Archeology',
'slug' => 'archeology',
'is_active' => true,
'created' => '2013-01-08 07:34:07',
'modified' => '2013-01-08 07:34:07'
)
),
(int) 1 => array(
'Category' => array(
'id' => '1',
'name' => 'Hill Stations',
'slug' => 'hill-stations',
'is_active' => true,
'created' => '2013-01-08 07:33:39',
'modified' => '2013-01-08 07:33:39'
)
),
(int) 2 => array(
'Category' => array(
'id' => '3',
'name' => 'Waterfall',
'slug' => 'waterfall',
'is_active' => true,
'created' => '2013-01-08 07:33:54',
'modified' => '2013-01-08 07:33:54'
)
),
(int) 3 => array(
'Category' => array(
'id' => '2',
'name' => 'Wild Life',
'slug' => 'wild-life',
'is_active' => true,
'created' => '2013-01-08 07:33:47',
'modified' => '2013-01-08 07:33:47'
)
)
)
我尝试了什么
$this->Category->recursive = -1;
$categories = $this->Category->find('all', array('order' => 'Category.name asc'));
debug($categories);
$category = array();
foreach($categories as $c){
$cat['name'] = $c['Category']['name'];
$cat['slug'] = $c['Category']['slug'];
$cat['active'] = ($c['Category']['is_active'] == 1) ? true : false;
$category['categories']['category'][] = $cat;
}
//debug($category);
$xml = Xml::build($category);
echo $xml;
debug($xml);
我无法通过上面的代码生成XML。
答案 0 :(得分:5)
$xmlObject = Xml::fromArray($category);
$xmlString = $xmlObject->asXML();