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

Asked

Viewed 223 times

1

With the code below XML in the CakePHP, however I need some nodes, have another CDATA type node.

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

But I don’t know which parameter I have to pass for him to do it.

Follows 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;

}
  • 1

    cakephp-2 removed the option that served to add the CDATA in the tags, in version 1.3 it was possible and easy to do, but did not find possibility to do this in versions 2.X and 3.X

  • @Erloncharles Now it’s complicated!

1 answer

1


Try something as shown in 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);

Browser other questions tagged

You are not signed in. Login or sign up in order to post.