Heim > Backend-Entwicklung > PHP-Problem > So konvertieren Sie XML-Daten in ein Array in PHP (zwei Methoden)

So konvertieren Sie XML-Daten in ein Array in PHP (zwei Methoden)

PHPz
Freigeben: 2023-04-14 17:40:52
Original
1776 Leute haben es durchsucht

PHP ist eine Programmiersprache, die häufig für die serverseitige Programmierung verwendet wird, während XML eine erweiterbare Auszeichnungssprache ist, die von vielen Anwendungen zum Speichern und Übertragen von Daten verwendet wird. In PHP können wir XML problemlos in ein Array konvertieren. Mit dieser Technologie können wir XML-Daten einfach verarbeiten und bearbeiten.

PHP bietet mehrere Methoden zum Konvertieren von XML in Arrays. Im Folgenden stellen wir zwei der häufig verwendeten Methoden vor.

Methode 1: Einfache XML-Erweiterung verwenden

Die einfache XML-Erweiterung ist eine Erweiterung, die mit PHP geliefert wird und uns dabei helfen kann, XML-Daten schnell in PHP-Arrays zu konvertieren. Wir müssen nur die Funktion simplexml_load_string() aufrufen, die ein SimpleXMLElement-Objekt basierend auf der XML-Zeichenfolge zurückgibt. Wir können XML-Daten über die Eigenschaften und Methoden des Objekts erhalten.

Das Folgende ist ein einfaches Beispiel:

$xmlString = '<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
  <book category="COOKING">
    <title lang="en">Everyday Italian</title>
    <author>Giada De Laurentiis</author>
    <year>2005</year>
    <price>30.00</price>
  </book>
  <book category="CHILDREN">
    <title lang="en">Harry Potter</title>
    <author>J.K. Rowling</author>
    <year>2005</year>
    <price>29.99</price>
  </book>
</bookstore>';

$xml = simplexml_load_string($xmlString);

print_r($xml);
Nach dem Login kopieren

Das Ausgabeergebnis lautet wie folgt:

SimpleXMLElement Object
(
    [book] => Array
        (
            [0] => SimpleXMLElement Object
                (
                    [@attributes] => Array
                        (
                            [category] => COOKING
                        )

                    [title] => Everyday Italian
                    [author] => Giada De Laurentiis
                    [year] => 2005
                    [price] => 30.00
                )

            [1] => SimpleXMLElement Object
                (
                    [@attributes] => Array
                        (
                            [category] => CHILDREN
                        )

                    [title] => Harry Potter
                    [author] => J.K. Rowling
                    [year] => 2005
                    [price] => 29.99
                )
        )
)
Nach dem Login kopieren

Wir können sehen, dass das SimpleXMLElement-Objekt in ein Array konvertiert wird, jeder Knoten zu einem Element des Arrays wird und sein Attribut ebenfalls zu einem wird Schlüssel-Wert-Paar.

Methode 2: PHP-DOM-Erweiterung verwenden

PHP-DOM-Erweiterung ist eine weit verbreitete PHP-Erweiterung, die zum Verarbeiten und Bearbeiten von XML- und HTML-Dokumenten verwendet werden kann. Wir können die bereitgestellten Methoden verwenden, um XML-Dateien in DOM-Objekte zu konvertieren und sie dann über DOM-bezogene Methoden in Arrays umzuwandeln.

Das Folgende ist ein einfaches Beispiel:

$xmlString = '<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
  <book category="COOKING">
    <title lang="en">Everyday Italian</title>
    <author>Giada De Laurentiis</author>
    <year>2005</year>
    <price>30.00</price>
  </book>
  <book category="CHILDREN">
    <title lang="en">Harry Potter</title>
    <author>J.K. Rowling</author>
    <year>2005</year>
    <price>29.99</price>
  </book>
</bookstore>';

$dom = new DOMDocument();
$dom->loadXML($xmlString);
$books = $dom->getElementsByTagName('book');
$data = array();

foreach ($books as $book) {
    $bookData = array(
        'category' => $book->getAttribute('category'),
        'title' => $book->getElementsByTagName('title')->item(0)->nodeValue,
        'author' => $book->getElementsByTagName('author')->item(0)->nodeValue,
        'year' => $book->getElementsByTagName('year')->item(0)->nodeValue,
        'price' => $book->getElementsByTagName('price')->item(0)->nodeValue
    );

    $data[] = $bookData;
}

print_r($data);
Nach dem Login kopieren

Die Ausgabe lautet wie folgt:

Array
(
    [0] => Array
        (
            [category] => COOKING
            [title] => Everyday Italian
            [author] => Giada De Laurentiis
            [year] => 2005
            [price] => 30.00
        )

    [1] => Array
        (
            [category] => CHILDREN
            [title] => Harry Potter
            [author] => J.K. Rowling
            [year] => 2005
            [price] => 29.99
        )
)
Nach dem Login kopieren

Wir können sehen, dass wir mit der PHP-DOM-Erweiterung die XML-Datei in ein DOM-Objekt konvertieren und die vom DOM-Objekt bereitgestellten Methoden verwenden können um jeden zu erhalten Der Wert des Knotens wird schließlich in ein PHP-Array konvertiert.

Zusammenfassung

Ganz gleich, ob Sie eine einfache XML-Erweiterung oder eine PHP-DOM-Erweiterung verwenden, Sie können XML-Dateien problemlos in PHP-Arrays konvertieren. Wir müssen nur die geeignete Methode entsprechend unseren Bedürfnissen auswählen. Mithilfe von PHP-Arrays können wir XML-Daten einfach verarbeiten und manipulieren.

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

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage