Heim > Backend-Entwicklung > PHP-Tutorial > Wie kann ich eine XML-Ausgabe in PHP hübsch drucken?

Wie kann ich eine XML-Ausgabe in PHP hübsch drucken?

Patricia Arquette
Freigeben: 2024-11-28 22:00:17
Original
413 Leute haben es durchsucht

How to Pretty Print XML Output in PHP?

So drucken Sie XML in PHP hübsch aus

Beim Arbeiten mit XML in PHP können Probleme mit der Formatierung auftreten. Wenn Sie bei der Anzeige von XML im Browser nicht die gewünschten Einrückungen und Leerzeichen erhalten, bietet dieser Artikel eine Lösung, die Ihnen bei der Ausgabe ansprechend formatierter XML-Daten hilft.

Problembeschreibung

Das Folgende PHP-Code erstellt ein XML-Dokument, erzeugt aber eine schlecht formatierte Ausgabe:

$doc = new DomDocument('1.0');
// create root node
$root = $doc->createElement('root');
$root = $doc->appendChild($root);
$signed_values = array('a' => 'eee', 'b' => 'sd', 'c' => 'df');
// process one row at a time
foreach ($signed_values as $key => $val) {
    // add node for each row
    $occ = $doc->createElement('error');
    $occ = $root->appendChild($occ);
    // add a child node for each field
    foreach ($signed_values as $fieldname => $fieldvalue) {
        $child = $doc->createElement($fieldname);
        $child = $occ->appendChild($child);
        $value = $doc->createTextNode($fieldvalue);
        $value = $child->appendChild($value);
    }
}
// get completed xml document
$xml_string = $doc->saveXML();
echo $xml_string;
Nach dem Login kopieren

Lösung

Um eine gut formatierte XML-Ausgabe zu erhalten, Sie können die folgenden Parameter für das DomDocument-Objekt festlegen:

$doc->preserveWhiteSpace = false;
$doc->formatOutput = true;
Nach dem Login kopieren

Indem Sie „preserveWhiteSpace“ auf „false“ setzen, werden Leerzeichen aus der Ausgabe entfernt. Wenn Sie formatOutput auf „true“ setzen, wird die Einrückung von XML-Elementen ermöglicht.

Alternativ können Sie diese Parameter direkt nach dem Erstellen des DomDocuments festlegen:

$doc = new DomDocument('1.0');
$doc->preserveWhiteSpace = false;
$doc->formatOutput = true;
Nach dem Login kopieren

Die Ausgabe liefert in beiden Fällen ordnungsgemäß formatiertes XML:

<?xml version="1.0"?>
<root>
  <error>
    <a>eee</a>
    <b>sd</b>
    <c>df</c>
  </error>
  <error>
    <a>eee</a>
    <b>sd</b>
    <c>df</c>
  </error>
  <error>
    <a>eee</a>
    <b>sd</b>
    <c>df</c>
  </error>
</root>
Nach dem Login kopieren

Zusätzlicher Hinweis

Wenn Sie die Einrückung weiter anpassen möchten, können Sie dies tun Verwenden Sie einen auf regulären Ausdrücken basierenden Ansatz:

$xml_string = preg_replace('/(?:^|\G)  /um', "\t", $xml_string);
Nach dem Login kopieren

Dadurch werden doppelte Leerzeichen durch Tabulatoren ersetzt.

Das obige ist der detaillierte Inhalt vonWie kann ich eine XML-Ausgabe in PHP hübsch drucken?. 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage