How to insert a node of type CDATA in xml generated by Cake PHP

1

With the code below I correctly generate XML in CakePHP , but I need some nodes to have another node of type CDATA.

Example: <![CDATA[ Buscape Teste ]]>

But I do not know what parameter I have to get it to do it.

Follow the function!

private function xmlBuscape()
{
    $xmlArray = array(
        'buscape' => array(

            'data_atualizacao' => '06/04/2015',

            'produtos' => array(
                'produto' => array(

                    'titulo' => 'Buscape Teste',

                    'descricao' => 'Produzido para que as mulheres tenham a rotina e os treinos na academia muito mais cômodos, a Olympikus criou o Tênis Olympikus Strong 43198923 com a tecnologia Glider Tech no EVA de seu solado. Esta tecnologia proporciona a melhoria na absorção de impactos e, ainda, dá mais leveza ao calçado. Este tênis tem, em sua parte superior, telas feitas em materiais leves e flexíveis, que permitem a transpiração dos seus pés. Não deixe de garantir o seu!',

                    'canal_buscape' => array(

                        'canal_url' => "http://www.example.com/produto/teste-absc.html?origem=buscape",
                        'valores' => array(
                            'valor' => array(
                                'forma_de_pagamento' => 'boleto',
                                'parcelamento' => '1x R$ 149,00',
                                'canal_preco' => 'R$ 149,00'
                            ),

                        ),

                    ),  

                    'canal_lomadee' => array(
                        'canal_url' => "http://www.example.com/produto/teste-absc.html?origem=lomadee",
                        'valores' => array(
                            'valor' => array(
                                'forma_de_pagamento' => 'boleto',
                                'parcelamento' => '1x R$ 149,00',
                                'canal_preco' => 'R$ 149,00'
                            ),

                        ),

                    ),

                    'id_oferta' => 'UADSD43DSAD93',

                    'imagens' => array(

                        'imagem' => array(
                            'http://www.example.com/tenis-olympikus-strong-43198923-w.jpg',
                            'http://www.example.com/tenis-olympikus-strong-43198923-w-2.jpg'
                        ),

                    ),

                    'categoria' => 'camiseta',
                    'disponibilidade' =>  1000,
                    'altura' =>  20.5,
                    'comprimento' => 80.5,
                    'largura' => 40.5,
                    'peso' => 305,

                    'especificacoes' => array(
                        'especificacao' => array(
                            'nome' => 'Estilo',
                            'valor' => 'Training'
                        ),

                    ),

                    'atributos' => array(

                        'atributo' => array(
                            'nome' => 'Tamanho',
                            'valor' => '35'
                        ),

                        'atributo' => array(
                            'nome' => 'Cor',
                            'valor' => 'AZUL/ROSA'
                        ),

                    ),


                ),          

            )

        )

    );

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

    return $xmlString;

}
    
asked by anonymous 19.08.2015 / 21:49

1 answer

1

Try something like the documentation :

// Usando SimpleXML
$myXmlOriginal = '<?xml version="1.0"?><root><child>value</child></root>';
$xml = Xml::build($myXmlOriginal);
$xml->root->addChild('young', 'new value');

// Usando DOMDocument
$myXmlOriginal = '<?xml version="1.0"?><root><child>value</child></root>';
$xml = Xml::build($myXmlOriginal, ['return' => 'domdocument']);
$child = $xml->createElement('young', 'new value');
$xml->firstChild->appendChild($child);
    
21.07.2017 / 21:47