ConFoo 2025

XMLWriter::setIndent

xmlwriter_set_indent

(PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL xmlwriter >= 0.1.0)

XMLWriter::setIndent -- xmlwriter_set_indent字下げの on/off を切り替える

説明

オブジェクト指向型

public XMLWriter::setIndent(bool $enable): bool

手続き型

xmlwriter_set_indent(XMLWriter $writer, bool $enable): bool

字下げの on/off を切り替えます。

パラメータ

writer

手続き型のコールでのみ使用します。 変更される XMLWriter のインスタンスです。 このインスタンスは、xmlwriter_open_uri() あるいは xmlwriter_open_memory() を呼び出すことで取得したものです。

enable

字下げを有効にするかどうか。

戻り値

成功した場合に true を、失敗した場合に false を返します。

変更履歴

バージョン 説明
8.0.0 引数 writer は、XMLWriter のインスタンスを期待するようになりました。 これより前のバージョンでは、リソースが期待されていました。

例1 XMLWriter::setIndent() と mixed content

mixed content では字下げを有効にしてもうまく動きません。 字下げされた文字列は、インライン要素の前に挿入されるからです。

<?php
$writer
= new XMLWriter();
$writer->openMemory();
$writer->setIndent(2);
$writer->startDocument();
$writer->startElement('p');
$writer->text('before');
$writer->writeElement('a', 'element');
$writer->text('after');
$writer->endElement();
$writer->endDocument();
echo
$writer->outputMemory();
?>

上の例の出力は以下となります。

<?xml version="1.0"?>
<p>before <a>element</a>
after</p>

注意

注意:

xmlwriter がオープンされた時に、字下げの状態はリセットされます。

参考

add a note

User Contributed Notes 1 note

up
2
info at ensostudio dot ru
3 years ago
NOTE: $enable can be integer as in example, or boolean.
To Top