This question already has answers here:
SimpleXML and print_r() - why is this empty?

(3 个回答)


6年前关闭。




我正在使用 SimpleXMLElement 方法加载字符串,但它不起作用。我的代码是:
$xml = new SimpleXMLElement($content);
var_dump($xml);

并且 var_dump 返回
object(SimpleXMLElement)#104 (0) { }

var $content 已正确设置和填充,如果我回应此 var,结果如下:
<?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>

有人可以帮我解决这个问题吗?

最佳答案

它可能不是“空的”——例如尝试 $xml->children();。据我所知,SimpleXmlElement 的行为不像其他 PHP 对象,因为当你 var_dump 它时(虽然我认为它出于某种原因与 print_r 一起工作)它不会向你显示它的成员。

10-08 19:41