xml - CakePHP 生成 XML

标签 xml cakephp

我想创建以下格式的 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。

最佳答案

$xmlObject = Xml::fromArray($category);
$xmlString = $xmlObject->asXML();

关于xml - CakePHP 生成 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14213124/

相关文章:

android - 如何更改 viewpager 中每个 fragment 的点指示器( Activity 和非 Activity )的颜色?

javascript - 有没有办法让浏览器忽略或覆盖 xml-stylesheet 处理指令?

c# - 如何创建忽略命名空间且不检查字符的 XmlTextReader

php - Cakephp 搜索 MySQL

php - 将html网页转换为pdf页面(用户将下载的pdf文件)

php - 我可以在 CakePHP 的更新语句中添加条件吗?

ruby - 使用Ruby解析xml内容并生成文本文件

javascript - 如何从 xml 中提取特定内容(在页面加载时)?

php - CakePHP 条件查找

php - 在 CAKEPHP 中,我们可以动态更改链接到特定模型的表吗?