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
Patricia ArquetteOriginal
2024-11-28 22:00:17370Durchsuche

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;

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;

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;

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>

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);

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!

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