Konvertieren von XML in JSON in PHP

Minahil Noor 25 Februar 2021 PHP PHP XML PHP JSON
Konvertieren von XML in JSON in PHP

In diesem Artikel wird eine Methode zur Konvertierung eines XML-Strings in JSON in PHP vorgestellt.

Verwendung der Funktionen simplexml_load_string() und json_encode() zur Konvertierung eines XML-Strings in JSON in PHP

Wir werden zwei Funktionen verwenden, um einen XML-String in PHP in JSON zu konvertieren, da es keine spezielle Funktion für die direkte Konvertierung gibt. Diese beiden Funktionen sind simplexml_load_string() und json_encode(). Die korrekte Syntax zur Verwendung dieser Funktionen für die Konvertierung eines XML-Strings in JSON lautet wie folgt.

simplexml_load_string($data, $class_name, $options, $ns, $is_prefix);

Die Funktion simplexml_load_string() nimmt fünf Parameter entgegen. Die Details zu den Parametern lauten wie folgt.

Variablen Beschreibung
$data obligatorisch Ein wohlgeformter XML-String.
$class_name optional Wir verwenden diesen optionalen Parameter, damit simplexml_load_string() ein Objekt der angegebenen Klasse zurückgibt. Diese Klasse sollte die Klasse SimpleXMLElement erweitern.
options optional Wir können auch den Parameter options verwenden, um zusätzliche Libxml-Parameter anzugeben.
ns optional Der Namespace-Präfix oder URI.
$is_prefix optional Wird auf true gesetzt, wenn $ns ein Präfix ist, false, wenn es ein URI ist. Sein Standardwert false.

Diese Funktion gibt das Objekt der Klasse SimpleXMLElement zurück, das die im XML-String enthaltenen Daten enthält, oder False im Fehlerfall.

json_encode($value, $flags, $depth);

Die Funktion json_encode() hat drei Parameter. Die Details zu den Parametern lauten wie folgt.

Variablen Beschreibung
$value obligatorisch Der zu kodierende Wert.
$flags optional Eine Bitmaske bestehend aus JSON_FORCE_OBJECT, JSON_HEX_QUOT, JSON_HEX_TAG, JSON_HEX_AMP, JSON_HEX_APOS, JSON_INVALID_UTF8_IGNORE, JSON_INVALID_UTF8_SUBSTITUTE, JSON_NUMERIC_CHECK, JSON_PARTIAL_OUTPUT_ON_ERROR, JSON_PRESERVE_ZERO_FRACTION, JSON_PRETTY_PRINT, JSON_UNESCAPED_LINE_TERMINATORS, JSON_UNESCAPED_SLASHES, JSON_UNESCAPED_UNICODE, JSON_THROW_ON_ERROR.
$depth optional Die maximale Tiefe. Sie sollte größer als Null sein.

Diese Funktion gibt den JSON-Wert zurück. Das folgende Programm zeigt, wie wir die Funktionen simplexml_load_string() und json_encode() verwenden können, um einen XML-String in PHP in JSON zu konvertieren.

<?php   
$xml_string =  <<<XML
<?xml version='1.0' standalone='yes'?>
<movies>
 <movie>
  <title>PHP: Behind the Parser</title>
  <characters>
   <character>
    <name>Ms. Coder</name>
    <actor>Onlivia Actora</actor>
   </character>
   <character>
    <name>Mr. Coder</name>
    <actor>El Act&#211;r</actor>
   </character>
  </characters>
  <plot>
   So, this language. It is like, a programming language. Or is it a
   scripting language? All is revealed in this thrilling horror spoof
   of a documentary.
  </plot>
  <great-lines>
   <line>PHP solves all my web problems</line>
  </great-lines>
  <rating type="thumbs">7</rating>
  <rating type="stars">5</rating>
 </movie>
</movies>
XML;
$xml = simplexml_load_string($xml_string);
$json = json_encode($xml); // convert the XML string to JSON
var_dump($json);
?>

Ausgabe:

string(415) "{"movie":{"title":"PHP: Behind the Parser","characters":{"character":[{"name":"Ms. Coder","actor":"Onlivia Actora"},{"name":"Mr. Coder","actor":"El Act\u00d3r"}]},"plot":"\n   So, this language. It is like, a programming language. Or is it a\n   scripting language? All is revealed in this thrilling horror spoof\n   of a documentary.\n  ","great-lines":{"line":"PHP solves all my web problems"},"rating":["7","5"]}}"
Genießen Sie unsere Tutorials? Abonnieren Sie DelftStack auf YouTube, um uns bei der Erstellung weiterer hochwertiger Videoanleitungen zu unterstützen. Abonnieren

Verwandter Artikel - PHP XML

Verwandter Artikel - PHP JSON