在 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中文網其他相關文章!