Konvertieren von XML in JSON in PHP

Minahil Noor 25 Februar 2021
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"]}}"

Verwandter Artikel - PHP XML

Verwandter Artikel - PHP JSON