首頁 > 後端開發 > php教程 > 如何在 PHP 中漂亮地列印 XML 輸出?

如何在 PHP 中漂亮地列印 XML 輸出?

Patricia Arquette
發布: 2024-11-28 22:00:17
原創
388 人瀏覽過

How to Pretty Print XML Output in PHP?

如何在 PHP 中漂亮地列印 XML

在 PHP 中使用 XML 時,您可能會遇到格式問題。如果您在瀏覽器中顯示 XML 時沒有獲得所需的縮排和空格字符,本文將提供一個解決方案來幫助您輸出格式良好的 XML 資料。

問題陳述

以下內容PHP 程式碼建立一個XML 文檔,但產生格式錯誤的輸出:

$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;
登入後複製

解決方案

至要取得格式良好的XML 輸出,您可以為DomDocument物件設定以下參數:

$doc->preserveWhiteSpace = false;
$doc->formatOutput = true;
登入後複製

透過將preserveWhiteSpace 設為 false,空白字元將從輸出中刪除。將 formatOutput 設為 true 可以啟用 XML 元素的縮排。

或者,您可以在建立 DomDocument 後立即設定這些參數:

$doc = new DomDocument('1.0');
$doc->preserveWhiteSpace = false;
$doc->formatOutput = true;
登入後複製

兩種情況下的輸出都會提供正確格式的 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>
登入後複製

附加說明

如果您想進一步自訂縮進,您可以使用基於正規表示式的方法:

$xml_string = preg_replace('/(?:^|\G)  /um', "\t", $xml_string);
登入後複製

這將會使用製表符替換雙空格。

以上是如何在 PHP 中漂亮地列印 XML 輸出?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板