Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why does SimpleXMLElement returns a empty object? [duplicate]

Tags:

php

xml

simplexml

I am using the SimpleXMLElement method to load a string, but it just does not work. My code is:

$xml = new SimpleXMLElement($content);
var_dump($xml);

And the var_dump returns

object(SimpleXMLElement)#104 (0) { }

The var $content is correctedly setted and filled, if I echo this var, this is the result:

<?xml version="1.0" encoding="utf-8" ?> 
<string xmlns="http://www.jadlog.com.br/JadlogWebService/services"> 
    <Jadlog_Tracking_Consultar> 
        <ND> 
            <Numero>10080780714284</Numero> 
            <Status>ENTREGUE</Status> 
            <DataHoraEntrega>16/06/2011</DataHoraEntrega> 
            <Recebedor>DIEGO OLIVEIRA CRUZ</Recebedor> 
            <Documento>0883473380</Documento> 
            <Evento> 
                <Codigo></Codigo> 
                <DataHoraEvento>10/06/2011 19:51</DataHoraEvento> 
                <Descricao>EMISSAO </Descricao> 
                <Observacao>CO SAO PAULO 08</Observacao> 
            </Evento> 
            <Evento> 
                <Codigo></Codigo> 
                <DataHoraEvento>10/06/2011 20:12</DataHoraEvento> 
                <Descricao>TRANSFERENCIA </Descricao> 
                <Observacao>TECA JAD SAO</Observacao> 
            </Evento> 
            <Evento> 
                <Codigo></Codigo> 
                <DataHoraEvento>10/06/2011 20:53</DataHoraEvento> 
                <Descricao>ENTRADA </Descricao> 
                <Observacao>TECA JAD SAO</Observacao> 
            </Evento> 
            <Evento> 
                <Codigo></Codigo> 
                <DataHoraEvento>10/06/2011 21:05</DataHoraEvento> 
                <Descricao>TRANSFERENCIA </Descricao> 
                <Observacao>FL JAD SALVADOR</Observacao> 
            </Evento> 
            <Evento> 
                <Codigo></Codigo> 
                <DataHoraEvento>12/06/2011 10:27</DataHoraEvento> 
                <Descricao>ENTRADA </Descricao> 
                <Observacao>FL JAD SALVADOR</Observacao> 
            </Evento> 
            <Evento> 
                <Codigo></Codigo> 
                <DataHoraEvento>12/06/2011 11:21</DataHoraEvento> 
                <Descricao>TRANSFERENCIA </Descricao> 
                <Observacao>CO SALVADOR 02</Observacao> 
            </Evento> 
            <Evento> 
                <Codigo></Codigo> 
                <DataHoraEvento>12/06/2011 11:25</DataHoraEvento> 
                <Descricao> ATRASO TRANSPORTE</Descricao> 
                <Observacao>FL JAD SALVADOR</Observacao> 
            </Evento> 
            <Evento> 
                <Codigo></Codigo> 
                <DataHoraEvento>12/06/2011 11:51</DataHoraEvento> 
                <Descricao>TRANSFERENCIA </Descricao> 
                <Observacao>CO SALVADOR 02</Observacao> 
            </Evento> 
            <Evento> 
                <Codigo></Codigo> 
                <DataHoraEvento>14/06/2011 14:28</DataHoraEvento> 
                <Descricao>ENTRADA </Descricao> 
                <Observacao>CO SALVADOR 02</Observacao> 
            </Evento> 
            <Evento> 
                <Codigo></Codigo> 
                <DataHoraEvento>14/06/2011 16:14</DataHoraEvento> 
                <Descricao>ENTRADA </Descricao> 
                <Observacao>CO SALVADOR 02</Observacao> 
            </Evento> 
            <Evento> 
                <Codigo></Codigo> 
                <DataHoraEvento>14/06/2011 18:10</DataHoraEvento> 
                <Descricao>EM ROTA </Descricao> 
                <Observacao>CO SALVADOR 02</Observacao> 
            </Evento> 
            <Evento> 
                <Codigo></Codigo> 
                <DataHoraEvento>16/06/2011 08:59</DataHoraEvento> 
                <Descricao>ENTREGUE </Descricao> 
                <Observacao>CO SALVADOR 02</Observacao> 
            </Evento> 
        </ND> 
    </Jadlog_Tracking_Consultar> 
</string>

Could someone help me out with this?

like image 271
Italo André Avatar asked Jul 11 '11 14:07

Italo André


2 Answers

It may not be 'empty' - try $xml->children(); for example. As far as I know SimpleXmlElement doesn't behave like other PHP objects, in that when you var_dump it (although I think it works with print_r for some reason) it doesn't show you its members.

like image 179
Ross Avatar answered Nov 08 '22 08:11

Ross


The problem was with the webservice, it was returning a Soap Object, but I was able to see it just in the source-code. As the XML was showing ok, I wasn't thinking there was a problem with the request. After checking the source-code and using Soap to handle the requests, I could figure it out. SimpleXML works nice.

Thanks to everyone for the help.

like image 2
Italo André Avatar answered Nov 08 '22 08:11

Italo André