使用SimpleXmlElement和symfony2输出xml文件

时间:2014-01-31 12:31:08

标签: xml symfony

$rootNode = new \SimpleXMLElement( "<?xml version='1.0' encoding='UTF-8' standalone='yes'?><items></items>" );

$itemNode = $rootNode->addChild('item');
$itemNode->addChild( 'itemCode', 'mk' );
$itemNode->addChild( 'itemName', 'orange' );

$itemNode = $rootNode->addChild('item');
$itemNode->addChild( 'itemCode', 'ap' );
$itemNode->addChild( 'itemName', 'apple' );

$itemNode = $rootNode->addChild('item');
$itemNode->addChild( 'itemCode', 'tof' );
$itemNode->addChild( 'itemName', '豆腐' );


$itemNode->addAttribute('stock', 'none');

我使用SimpleXMLElement创建了xml数据。

然后我想在symfony2

上输出
return $rootNode->asXML();

return $this->render($rootNode->asXML());

要么不起作用。如何输出xml文件?

1 个答案:

答案 0 :(得分:6)

如果要从控制器输出数据,可以执行以下操作:

<?php

namespace Acme\DemoBundle\Controller;

use Symfony\Component\HttpFoundation\Request;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Response;

class SomeController extends Controller
{
    public function someAction(Request $request)
    {
        $rootNode = new \SimpleXMLElement( "<?xml version='1.0' encoding='UTF-8' standalone='yes'?><items></items>" );

        $itemNode = $rootNode->addChild('item');
        $itemNode->addChild( 'itemCode', 'mk' );
        // ...
        return new Response($rootNode->asXML());
    }
}