


So verwenden Sie Objektmethoden in der SPL-Bibliothek, um XML in Arrays in PHP zu konvertieren
In diesem Artikel erfahren Sie, wie Sie die Objektmethode in der SPL-Bibliothek zum Konvertieren von XML und Arrays in PHP verwenden. Es hat einen gewissen Referenzwert. Freunde in Not können sich darauf beziehen. Ich hoffe, es wird für alle hilfreich sein.
Obwohl viele Dienstanbieter mittlerweile JSON-Schnittstellen für uns bereitstellen, gibt es immer noch viele Dienste, die XML als Schnittstellenformat verwenden müssen, was erfordert, dass wir Daten im XML-Format analysieren und konvertieren. In PHP gibt es keine Funktionen wie json_encode() und json_decode(), die uns eine einfache Konvertierung ermöglichen. Daher muss bei der Verarbeitung von XML-Daten häufig jeder seinen eigenen Code schreiben, um dies zu erreichen.
Heute stellen wir die Verwendung einiger Objektmethoden in der SPL-Erweiterungsbibliothek vor, um die Konvertierung von XML-Datenformaten durchzuführen. Zuerst definieren wir eine Klasse, was der Kapselung einer Klasse entspricht, die die XML-Datenkonvertierung für unsere zukünftige Verwendung durchführt. Wenn Sie den Effekt nur testen möchten, können Sie die folgende Funktion auch direkt schreiben.
class ConvertXml{ // .... }
XML-zu-PHP-Array
class ConvertXml{ public function xmlToArray(SimpleXMLIterator $xml): array { $res = []; for ($xml->rewind(); $xml->valid(); $xml->next()) { $a = []; if (!array_key_exists($xml->key(), $a)) { $a[$xml->key()] = []; } if ($xml->hasChildren()) { $a[$xml->key()][] = $this->xmlToArray($xml->current()); } else { $a[$xml->key()] = (array) $xml->current()->attributes(); $a[$xml->key()]['value'] = strval($xml->current()); } $res[] = $a; } return $res; } // ..... } $wsdl = 'http://flash.weather.com.cn/wmaps/xml/china.xml'; $xml = new SimpleXMLIterator($wsdl, 0, true); $convert = new ConvertXml(); // var_dump($convert->xmlToArray($xml)); // array(37) { // [0]=> // array(1) { // ["city"]=> // array(2) { // ["@attributes"]=> // array(9) { // ["quName"]=> // string(9) "黑龙江" // ["pyName"]=> // string(12) "heilongjiang" // ["cityname"]=> // string(9) "哈尔滨" // ["state1"]=> // string(1) "7" // ["state2"]=> // string(1) "3" // ["stateDetailed"]=> // string(15) "小雨转阵雨" // ["tem1"]=> // string(2) "21" // ["tem2"]=> // string(2) "16" // ["windState"]=> // string(21) "南风6-7级转4-5级" // } // ["value"]=> // string(0) "" // } // } // [1]=> // array(1) { // ["city"]=> // array(2) {
Hier verwenden wir das SimpleXMLIterator-Objekt. Wie aus dem Namen hervorgeht, besteht seine Aufgabe darin, SimpleXMLElement-Objekte zu generieren, die durchlaufen werden können. Der erste Parameter ist ordnungsgemäß formatierter XML-Text oder eine Linkadresse. Der zweite Parameter sind einige Optionsparameter. Hier können wir einfach 0 angeben. Der dritte Parameter gibt an, ob der erste Parameter eine Linkadresse ist. Hier geben wir true an.
Wir haben das SimpleXMLIterator-Objekt auf der Clientseite generiert und es an die xmlToArray()-Methode übergeben. Auf diese Weise können wir mit dem SimpleXMLIterator-Objekt jeden Knoten durchlaufen. Als nächstes müssen wir nur feststellen, ob der Knoten untergeordnete Knoten hat. Wenn keine untergeordneten Knoten vorhanden sind, rufen Sie die Attribute und den Inhalt des Knotens ab.
Dieser Testlink dient zum Abrufen von Wetterinformationen. Jeder Knoten im zurückgegebenen Inhalt hat nur Attribute und keinen Inhalt. Dies spiegelt sich im konvertierten Array wider, in dem das Wertfeld leer ist.
PHP-Array oder -Objekt in XML konvertieren
class ConvertXml{ // ...... const UNKNOWN_KEY = 'unknow'; public function arrayToXml(array $a) { $xml = new SimpleXMLElement('<?xml version="1.0" standalone="yes"?><root></root>'); $this->phpToXml($a, $xml); return $xml->asXML(); } protected function phpToXml($value, &$xml) { $node = $value; if (is_object($node)) { $node = get_object_vars($node); } if (is_array($node)) { foreach ($node as $k => $v) { if (is_numeric($k)) { $k = 'number' . $k; } if (!is_array($v) && !is_object($v)) { $xml->addChild($k, $v); } else { $newNode = $xml->addChild($k); $this->phpToXml($v, $newNode); } } } else { $xml->addChild(self::UNKNOWN_KEY, $node); } } } var_dump($convert->arrayToXml($data)); // string(84454) "<?xml version="1.0" standalone="yes"?> // <root><unlikely-outliner><subject><mongo-db><outline><chapter><getting-started><number0> ........... // "
In arrayToXml() erstellen wir zunächst eine grundlegende Stammknotenstruktur mithilfe des SimpleXMLElement-Objekts. Verwenden Sie dann die Methode phpToXml(), um alle Knoten zu erstellen. Warum es in zwei Methoden aufteilen? Da die phpToXml()-Methode rekursiv aufgerufen werden muss, müssen wir den Wurzelknoten nicht bei jeder Rekursion neu erstellen. Wir müssen nur addChild() unter dem Wurzelknoten verwenden, um untergeordnete Knoten hinzuzufügen.
Im Code von phpToXml() verwenden wir auch die Funktion get_object_vars(). Das heißt, wenn der Inhalt des übergebenen Array-Elements ein Objekt ist, können alle Eigenschaften des Objekts über diese Funktion abgerufen werden. Wenn Sie sich ein Objekt als Array vorstellen, ist jeder Attributwert sein Schlüssel-Wert-Paar.
Beim Durchlaufen jedes Schlüsselwerts bestimmen wir, ob der dem aktuellen Schlüssel entsprechende Inhalt ein Array oder ein Objekt ist. Wenn der Inhalt nicht in diesen beiden Formen vorliegt, wird der aktuelle Inhalt direkt als untergeordneter Knoten des aktuellen Knotens hinzugefügt. Wenn es sich um ein Array oder ein Objekt handelt, fügen Sie rekursiv hinzu, bis der gesamte Array-Inhalt durchlaufen ist.
Der $data-Inhalt des Tests ist sehr lang. Sie können ihn direkt auf Github über den Link zum Testcode überprüfen.
Zusammenfassung
Der Inhalt dieses Artikels ist eine einfache Studie über die Verwendung von zwei Objekten in einer SPL-Erweiterungsbibliothek für XML-Operationen. Durch sie können wir problemlos XML-Datenformate konvertieren. Natürlich haben wir auch andere Methoden zur XML-Formatkonvertierung, die wir später kennenlernen werden!
Testcode:
https://github.com/zhangyue0503/dev-blog/blob/master/php/202009/source/在PHP中使用SPL库中的对象方法进行XML与数组的转换.php
Empfohlenes Lernen: php-Video-Tutorial
Das obige ist der detaillierte Inhalt vonSo verwenden Sie Objektmethoden in der SPL-Bibliothek, um XML in Arrays in PHP zu konvertieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



PHP 8.4 bringt mehrere neue Funktionen, Sicherheitsverbesserungen und Leistungsverbesserungen mit einer beträchtlichen Menge an veralteten und entfernten Funktionen. In dieser Anleitung wird erklärt, wie Sie PHP 8.4 installieren oder auf PHP 8.4 auf Ubuntu, Debian oder deren Derivaten aktualisieren. Obwohl es möglich ist, PHP aus dem Quellcode zu kompilieren, ist die Installation aus einem APT-Repository wie unten erläutert oft schneller und sicherer, da diese Repositorys in Zukunft die neuesten Fehlerbehebungen und Sicherheitsupdates bereitstellen.

Visual Studio Code, auch bekannt als VS Code, ist ein kostenloser Quellcode-Editor – oder eine integrierte Entwicklungsumgebung (IDE) –, die für alle gängigen Betriebssysteme verfügbar ist. Mit einer großen Sammlung von Erweiterungen für viele Programmiersprachen kann VS Code c

Wenn Sie ein erfahrener PHP-Entwickler sind, haben Sie möglicherweise das Gefühl, dass Sie dort waren und dies bereits getan haben. Sie haben eine beträchtliche Anzahl von Anwendungen entwickelt, Millionen von Codezeilen debuggt und eine Reihe von Skripten optimiert, um op zu erreichen

Dieses Tutorial zeigt, wie XML -Dokumente mit PHP effizient verarbeitet werden. XML (Extensible Markup-Sprache) ist eine vielseitige textbasierte Markup-Sprache, die sowohl für die Lesbarkeit des Menschen als auch für die Analyse von Maschinen entwickelt wurde. Es wird üblicherweise für die Datenspeicherung ein verwendet und wird häufig verwendet

JWT ist ein offener Standard, der auf JSON basiert und zur sicheren Übertragung von Informationen zwischen Parteien verwendet wird, hauptsächlich für die Identitätsauthentifizierung und den Informationsaustausch. 1. JWT besteht aus drei Teilen: Header, Nutzlast und Signatur. 2. Das Arbeitsprinzip von JWT enthält drei Schritte: Generierung von JWT, Überprüfung von JWT und Parsingnayload. 3. Bei Verwendung von JWT zur Authentifizierung in PHP kann JWT generiert und überprüft werden, und die Funktionen und Berechtigungsinformationen der Benutzer können in die erweiterte Verwendung aufgenommen werden. 4. Häufige Fehler sind Signaturüberprüfungsfehler, Token -Ablauf und übergroße Nutzlast. Zu Debugging -Fähigkeiten gehört die Verwendung von Debugging -Tools und Protokollierung. 5. Leistungsoptimierung und Best Practices umfassen die Verwendung geeigneter Signaturalgorithmen, das Einstellen von Gültigkeitsperioden angemessen.

Eine Zeichenfolge ist eine Folge von Zeichen, einschließlich Buchstaben, Zahlen und Symbolen. In diesem Tutorial wird lernen, wie Sie die Anzahl der Vokale in einer bestimmten Zeichenfolge in PHP unter Verwendung verschiedener Methoden berechnen. Die Vokale auf Englisch sind a, e, i, o, u und sie können Großbuchstaben oder Kleinbuchstaben sein. Was ist ein Vokal? Vokale sind alphabetische Zeichen, die eine spezifische Aussprache darstellen. Es gibt fünf Vokale in Englisch, einschließlich Großbuchstaben und Kleinbuchstaben: a, e, ich, o, u Beispiel 1 Eingabe: String = "TutorialPoint" Ausgabe: 6 erklären Die Vokale in der String "TutorialPoint" sind u, o, i, a, o, ich. Insgesamt gibt es 6 Yuan

Statische Bindung (statisch: :) implementiert die späte statische Bindung (LSB) in PHP, sodass das Aufrufen von Klassen in statischen Kontexten anstatt Klassen zu definieren. 1) Der Analyseprozess wird zur Laufzeit durchgeführt.

Was sind die magischen Methoden von PHP? Zu den magischen Methoden von PHP gehören: 1. \ _ \ _ Konstrukt, verwendet, um Objekte zu initialisieren; 2. \ _ \ _ Destruct, verwendet zur Reinigung von Ressourcen; 3. \ _ \ _ Call, behandeln Sie nicht existierende Methodenaufrufe; 4. \ _ \ _ GET, Implementieren Sie den dynamischen Attributzugriff; 5. \ _ \ _ Setzen Sie dynamische Attributeinstellungen. Diese Methoden werden in bestimmten Situationen automatisch aufgerufen, wodurch die Code -Flexibilität und -Effizienz verbessert werden.
