Frage

Hier ist ein Beispiel für meine XML-Daten

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

Und hier ist mein Code:

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

Aber es funktioniert nicht.Ich bin auch in Ordnung, wenn $ xml in JSON oder ein Array konvertiert wird.Was auch immer am besten funktioniert, um die XML-Datei zu durchlaufen und DeliveryAttempts anzuzeigen.

War es hilfreich?

Lösung

Dies liegt am XML-Namespace.Machen Sie so etwas:

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

Andere Tipps

Versuchen Sie es

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

stattdessen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top