Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich eine XML-Ausgabe in PHP hübsch drucken?
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.
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;
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>
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!