Pergunta

Aqui está um exemplo de meus dados xml

<GetSendStatisticsResponse xmlns="http://ses.amazonaws.com/doc/2010-12-01/">
<GetSendStatisticsResult>
<SendDataPoints>
  <member>
    <DeliveryAttempts>69</DeliveryAttempts>
    <Timestamp>2011-09-12T01:00:00Z</Timestamp>
    <Rejects>0</Rejects>
    <Bounces>0</Bounces>
    <Complaints>0</Complaints>
  </member>
  <member>
    <DeliveryAttempts>1</DeliveryAttempts>
    <Timestamp>2011-09-08T17:00:00Z</Timestamp>
    <Rejects>0</Rejects>
    <Bounces>0</Bounces>
    <Complaints>0</Complaints>
  </member>
  <member>
    <DeliveryAttempts>282</DeliveryAttempts>
    <Timestamp>2011-09-09T18:00:00Z</Timestamp>
    <Rejects>0</Rejects>
    <Bounces>0</Bounces>
    <Complaints>0</Complaints>
  </member>

E este é meu código:

$xml = simplexml_load_string($resp);
$result = $xml->xpath('//member');
foreach($result->member as $member)
    {
    echo "<p>";
    echo "Delivery Attempts: ".$member->DeliveryAttempts."<br/>";
    echo "</p>";
    }

Mas não está funcionando.Também estou bem se $ xml for convertido em JSON ou um Array.O que funcionar melhor para iterar por meio do xml para exibir DeliveryAttempts.

Foi útil?

Solução

Isso se deve ao namespace XML.Faça algo assim:

$xml->registerXPathNamespace( 'ses', 'http://ses.amazonaws.com/doc/2010-12-01/' );
$result = $x->xpath( '//ses:member' ) ;

Outras dicas

Experimente

foreach ($result as $member) {
   ...
}

em vez disso.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top