ホームページ >バックエンド開発 >PHPチュートリアル >PHP からの XML 出力を適切にフォーマットするにはどうすればよいですか?

PHP からの XML 出力を適切にフォーマットするにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-25 02:01:18658ブラウズ

How Can I Properly Format XML Output from PHP?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。