Heim  >  Artikel  >  Backend-Entwicklung  >  So konvertieren Sie PHP-Schnittstellen-XML in ein Array

So konvertieren Sie PHP-Schnittstellen-XML in ein Array

PHPz
PHPzOriginal
2023-04-26 09:07:31562Durchsuche

Mit der Entwicklung des Internets werden verschiedene Schnittstellen immer wichtiger. Ob Datenaustausch zwischen Unternehmen oder Datenintegration, Schnittstellen müssen aufgerufen werden. Beim Aufruf der Schnittstelle in PHP ist es häufig erforderlich, das von der Schnittstelle zurückgegebene XML in ein Array zu konvertieren. Daher wird in diesem Artikel erklärt, wie man eine Schnittstelle in PHP aufruft und XML in ein Array konvertiert.

1. Methode zum Aufrufen der Schnittstelle

In PHP ist die Verwendung der CURL-Bibliothek die häufigste Methode zum Aufrufen der Schnittstelle. Verwenden Sie die CURL-Bibliothek, um HTTP-Anfragen, einschließlich GET, POST, PUT, DELETE und andere Anfragemethoden, einfach auszuführen. Angenommen, wir müssen eine Schnittstelle aufrufen, die Daten im XML-Format zurückgibt. Der Aufrufvorgang ist wie folgt:

  1. CURL initialisieren

$curl = curl_init();

  1. Anforderungsadresse und Anforderungsmethode festlegen

curl_setopt ($curl, CURLOPT_URL, "http://example.com/api");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_POST, 1);

  1. Legen Sie die Parameter des POST fest Request

$ post_data = array (

'key' => 'value',
'key2' => 'value2'

);
curl_setopt ($ curl, curlopt_postfields, $ post_data);

Close CURL
  1. curl_close($ curl );

Im obigen Code sind $response die von der Schnittstelle zurückgegebenen XML-Formatdaten, die dann in ein Array konvertiert werden müssen.

    2. XML-zu-Array-Konvertierungsmethode
  1. Wir können die integrierte SimpleXML-Bibliothek von PHP verwenden, um Daten im XML-Format in Objekte oder Arrays zu konvertieren. Die Verwendung ist wie folgt:

Daten im XML-Format in Objekte konvertieren

$xml = simplexml_load_string($response);

print_r($xml);

    Daten im XML-Format in Array konvertieren
$xml = simplexml_load_string ($response);

$json = json_encode($xml);
$array = json_decode($json, true);

print_r($array);
  1. Im obigen Code wird zunächst die Funktion simplexml_load_string zum Konvertieren verwendet Daten im XML-Format in ein Objekt umwandeln, dann mit json_encode das Objekt in Daten im JSON-Format konvertieren und dann mit json_decode die Daten im JSON-Format in ein Array konvertieren, wodurch die Konvertierung von XML in ein Array realisiert wird.
3. Vermeiden Sie XML-Formatprobleme


Wenn bei der oben genannten Methode das von der Schnittstelle zurückgegebene XML-Format nicht standardisiert ist oder Probleme aufweist, schlägt die Konvertierung der Funktion simplexml_load_string fehl. Um diese Situation zu vermeiden, können Sie die in PHP integrierte DomDocument-Bibliothek verwenden, um Daten im XML-Format zu analysieren. Die Verwendung ist wie folgt:

DomDocument initialisieren

$doc = new DOMDocument();

XML-Daten laden
  1. $doc->loadXML($response);

XML-Elemente abrufen und konvertieren sie in Arrays umwandeln
  1. $result = array();
foreach ($doc->getElementsByTagName("*") as $node) {

//如果元素没有子元素,就获取元素值
if (!$node->hasChildNodes()) {
    $result[$node->nodeName] = $node->nodeValue;
} else {

    //否则,递归获取子元素
    foreach ($node->childNodes as $childNode) {
        if ($childNode->nodeType != XML_TEXT_NODE) {
            $result[$node->nodeName][] = array(
                $childNode->nodeName => $childNode->nodeValue
            );
        }
    }
}
}
  1. print_r($result);
Im obigen Code , haben wir ein DOMDocument-Objekt erstellt und verwenden die Funktion „loadXML“, um Daten im XML-Format in das DOM zu laden. Als Nächstes verwenden wir die Funktion getElementsByTagName, um die XML-Elemente abzurufen und die untergeordneten Elemente rekursiv abzurufen. Auf diese Weise können Konvertierungsfehler aufgrund von XML-Formatproblemen vermieden werden.


4. Zusammenfassung

In diesem Artikel wird die Methode zum Aufrufen der Schnittstelle in PHP und zum Konvertieren von Daten im XML-Format in ein Array vorgestellt. Mit der CURL-Bibliothek können Sie ganz einfach HTTP-Anfragen stellen; mit der SimpleXML- oder DomDocument-Bibliothek können Sie Daten im XML-Format in ein Array oder Objekt konvertieren. Durch die Verwendung der DomDocument-Bibliothek können Konvertierungsfehler aufgrund von XML-Formatproblemen besser vermieden werden. Wir hoffen, dass dieser Artikel etwas Hilfe bei den Problemen bieten kann, auf die PHP-Entwickler während des Schnittstellenaufrufprozesses stoßen.

Das obige ist der detaillierte Inhalt vonSo konvertieren Sie PHP-Schnittstellen-XML in ein Array. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn