PHP XML in Array

王林
王林Original
2024-08-29 13:09:581088Durchsuche

Wir verwenden es, um ein XML-Dokument in ein PHP-Array zu konvertieren. Manchmal müssen wir das XML-Dokument als eingehende Daten behandeln oder Daten als XML-Dokument exportieren. Die XML-Sprache wird verwendet, um den Datenaustausch über Websites oder Anwendungen hinweg zu strukturieren. Daher bietet es eine XML-zu-Array-Operation, um reibungslos mit den XML-Daten zu arbeiten.

Starten Sie Ihren kostenlosen Softwareentwicklungskurs

Webentwicklung, Programmiersprachen, Softwaretests und andere

Während der Konvertierung müssen wir einige der unten aufgeführten Funktionen verwenden –

  • file_get_contents()-Funktion: Diese Funktion liest eine Datei als String.
  • simplexml_load_string()-Funktion: Diese Funktion wird verwendet, um ein XML zu analysieren und ein Objekt zurückzugeben.
  • json_encode()-Funktion: Diese Funktion codiert einen JSON-String und gibt den JSON-Wert zurück.
  • json_decode()-Funktion: Diese Funktion dekodiert einen JSON-String (PHP-Variable).

Einarbeitung des PHP-XML in ein Array

Es akzeptiert das XML-Dokument und wandelt es in ein Array um. Angenommen, wir haben ein XML-Dokument als ExXMl.xml; Jetzt wollen wir es in ein Array konvertieren. Um zu konvertieren, müssen wir also einige Schritte befolgen –

  1. Importieren Sie eine ExXMl.xml-Datei mit Hilfe der Funktion file_get_content() in PHP, sodass die Datei ExXMl.xml als Zeichenfolge gelesen und in einer Variablen gespeichert wird.
  2. Als nächstes müssen die gelesenen String-Daten mit Hilfe der Funktion simplexml_load_string() in ein Objekt umgewandelt werden.
  3. Verwenden Sie abschließend die Funktion json_decode(), um die JSON-Zeichenfolge zu dekodieren, die die JSON-codierte Zeichenfolge in ein Array konvertiert.

Beispiele

Beispiel zum Laden einer XML-Datei und deren Konvertierung in ein PHP-Array –

Beispiel #1

Zuerst erstellen wir die XML-Datendatei mit dem Namen „ExXML.xml“ und erstellen den Dateninhalt als –

Code:

<?xml version="1.0" encoding="utf-8"?>
<Student>
<firstname name = 'John'>
<rollno> 12 </rollno>
<marks> 78 </marks>
<subject> English </subject>
</firstname>
<firstname name='Sam'>
<rollno> 15 </rollno>
<marks> 80 </marks>
<subject> English </subject>
</firstname>
<firstname name='Praveen'>
<rollno> 30 </rollno>
<marks> 50 </marks>
<subject> English </subject>
</firstname>
</Student>
Next,we create the PHP file to read and load the XML file, as below -
<?php
// xml file
$file = "ExXML.xml";
// Read XML file as string
$xml_file = file_get_contents($file);
//  xml string is Convert into an object
$obj = simplexml_load_string($xml_file);
// AN object Convert into json string
$json_string = json_encode($obj);
// Convert json string into an array
$array = json_decode($json_string, true);
// print an array
print_r($array);
?>

Ausgabe:

PHP XML in Array

Alle öffnenden und schließenden Tags sind korrekt. Als nächstes wird das geladene Objekt mit Hilfe der Funktionen json_encode() bzw. json_decode() als PHP-Array kodiert und dekodiert.

Beispiel #2

Ein Beispiel, bei dem Fehler auftreten und analysiert werden-

Als nächstes schreiben wir den PHP-Code, um das PHP-XML zu verstehen, in ein Array, wo wir die Parsing-Fehler sehen, die beim Ausführen des XML in ein Array aufgrund der Nichtübereinstimmung des XML-Tags oder einer nicht ordnungsgemäßen Strukturierung aufgetreten sind, wie unten –

Code:

<?xml version='1.0'?>
<Student>
<firstname name = 'John'>
<rollno> 12 </rollno>
<marks> 78 </marks>
<!-- missing -->
</firstname>
<firstname name='Sanjay'>
<rollno> 15 </rollno>
<marks> 80 </marks>
<!-- mismatch tag -->
<subject> English <subject>
</firstname>
<firstname name='Parvez'>
<rollno> 30 </rollno>
<marks> 50 </marks>
<subject> English </subject>
</firstname>
</Student>
Next, we create the PHP file to read and load the XML file, as below -
<?php
// xml file
$file = "ExXML.xml";
// Read file as string
$xml_file = file_get_contents($file);
//  xml string is Convert into an object
$obj = simplexml_load_string($xml_file);
// check xml load or not
if ($obj == FALSE) {
echo "There were errors to parse the XML file.\n";
exit;
}
// AN object Convert into json string
$json_string = json_encode($obj);
// Convert json string into an array
$array = json_decode($json_string, true);
// print an array
print_r($array);
?>

Ausgabe:

PHP XML in Array

Einer der öffnenden und schließenden Tags stimmt nicht überein und einer der Tags fehlt (wie in der XML-Datei mit dem Kommentar-Tag erwähnt).  Die Warnungen treten beim Parsen und Laden der XML-Datei auf, wie in der obigen Ausgabe zu sehen ist. Korrigieren Sie also die XML-Datei, indem Sie die Warnungen lesen, und laden Sie sie erneut.

Das obige ist der detaillierte Inhalt vonPHP XML in 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
Vorheriger Artikel:PHP XML-ParserNächster Artikel:PHP XML-Parser