2016-05-10 17 views
1

Ich habe einige PHP-Code, der ruft, dann eine Antwort von einer API empfängt (mit file_get_contents()), die API-Antworten mit einem XML-Format wie folgt:Erhalten Sie bestimmte Teile von XML Antwort?

<?xml version="1.0"?> 
<root><status>success</status> 
<duration>5 seconds</duration> 
<average>13692.4</average></root> 

so zum Beispiel in PHP wie würde ich diese XML nehmen Antwort und erhalten (für sagen wir mal) den Wert <average>? Jede Hilfe würde sehr geschätzt werden :)

+0

Kasse des [function.xml-Parsing-in- struct] (http://php.net/manual/en/function.xml-parse-into-struct.php) 'Beispiel # 2' && 'Beispiel # 3' –

Antwort

1

Es gibt mehrere Möglichkeiten, XML zu analysieren, von denen einer der XMLReader ist. Ein einfaches Beispiel den Wert von average aus dem XML abrufen Sie so etwas wie diese wären posted:

<?php 

// Read the XML output from the API 
$xml = file_get_contents('https://api.example.com/output.xml'); 

$reader = new XMLReader(); 
$reader->open('data://text/xml,' . $xml); 

// Read the XML 
while ($reader->read()) { 
    // Look for the "average" node 
    if ($reader->name == 'average') { 
     $value = $reader->readString(); 
     if (!empty($value)) { 
      // This will output 13692.4 
      var_dump($value); 
     } 
    } 
} 

$reader->close(); 

Ein anschauliches Beispiel hier zu sehen ist: https://3v4l.org/s7sNl