我使用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>
有人可以帮我解决这个问题吗?
答案 0 :(得分:2)
问题在于webservice,它正在返回一个Soap对象,但我能够在源代码中看到它。由于XML显示正常,我不认为请求存在问题。检查源代码并使用Soap处理请求后,我可以搞清楚。 SimpleXML很好用。
感谢大家的帮助。
答案 1 :(得分:1)
它可能不是“空” - 例如尝试$xml->children();
。据我所知,SimpleXmlElement的行为与其他PHP对象不同,当你var_dump
它时(虽然我认为它因某种原因与print_r
一起使用)但它并没有向你展示它的成员。
答案 2 :(得分:0)
它运作正常。 XML刚刚存储在一个对象中。所以你可以像任何其他对象一样访问它。所以当你转储$ xml的内容时,你看到它说对象是正确的。见下面的例子。以下是一些随机的例子。我只是想向你展示箭头 - &gt;。
<?php
$xml = new SimpleXMLElement($xmlstr);
echo $xml->movie[0]->plot;
?>