ホームページ > バックエンド開発 > PHPチュートリアル > PHP で XML 出力をきれいに印刷する方法

PHP で XML 出力をきれいに印刷する方法

Patricia Arquette
リリース: 2024-11-28 22:00:17
オリジナル
414 人が閲覧しました

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;
ログイン後にコピー

Solution

To適切にフォーマットされた 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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート