Extrahieren von XML-Antworten mit PHP cURL
In PHP kann cURL verwendet werden, um Daten von Servern abzurufen. Wenn die Antwort jedoch im XML-Format vorliegt, wird die Ausgabe möglicherweise in einer Skalarvariablen gespeichert, was die Analyse erschwert. Um dieses Problem zu beheben, ist es hilfreich, die XML-Antwort zur einfacheren Bearbeitung in ein Objekt, einen Hash oder ein Array zu konvertieren.
Bedenken Sie den folgenden Code:
function download_page($path){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$path);
curl_setopt($ch, CURLOPT_FAILONERROR,1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_TIMEOUT, 15);
$retValue = curl_exec($ch);
curl_close($ch);
return $retValue;
}
$sXML = download_page('http://alanstorm.com/atom');
$oXML = new SimpleXMLElement($sXML);
foreach($oXML->entry as $oEntry){
echo $oEntry->title . "\n";
}
In diesem Code ruft die Funktion „download_page“ mithilfe von cURL ein XML-Dokument von einer angegebenen URL ab, mit verschiedenen Optionen, um die ordnungsgemäße Behandlung von Fehlern, Umleitungen und Zeitüberschreitungen sicherzustellen. Das Ergebnis wird in der Variablen $sXML gespeichert.
Um die XML-Antwort in ein Objekt zu konvertieren, wird die Klasse SimpleXMLElement verwendet. Diese Klasse stellt Methoden für den einfachen Zugriff auf einzelne Elemente und Attribute des XML-Dokuments bereit. In diesem Beispiel durchlaufen wir die Einträge im Dokument und geben ihre Titel aus.
Durch das Parsen der XML-Antwort in ein Objekt wird es erheblich einfacher, auf die darin enthaltenen Daten zuzugreifen und diese zu bearbeiten, sodass Entwickler bestimmte Daten extrahieren können Informationen erfassen und effektiv verarbeiten.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3