ホームページ >バックエンド開発 >PHPチュートリアル >PHP からの XML 出力を適切にフォーマットするにはどうすればよいですか?
PHP XML: フォーマットされた形式での XML の表示
この記事では、PHP からの XML 出力のフォーマットの問題について説明します。提供されたコードでは、XML をブラウザーに出力すると、インデントや改行のないフラット化された出力が得られました。これを解決するには、PHP 関数を利用して書式設定を強化できます。
最初のステップでは、DomDocument インスタンスのpreserveWhiteSpace プロパティと formatOutput プロパティを設定します。
$doc->preserveWhiteSpace = false; $doc->formatOutput = true;
preserveWhiteSpace を false に設定すると、過剰なデータが削除されます。一方、formatOutput は、PHP にその内容に従って 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>
さらにカスタマイズするには、正規表現を使用してスペースを次のように置き換えることができます。 tabs:
$xml_string = preg_replace('/(?:^|\G) /um', "\t", $xml_string);
最後に、tidy_repair_string 関数で Tidy 拡張機能 (利用可能な場合) を使用して XML をフォーマットすることもできます:
tidy_repair_string($xml_string, ['input-xml'=> 1, 'indent' => 1, 'wrap' => 0]);
このメソッドにより、インデントを正確に制御できますレベルはありますが、タブのインデントは生成されません。
以上がPHP からの XML 出力を適切にフォーマットするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。