内部の XML ツリーを文字列として出力する

# DOMDocument::saveXML

(PHP 5, PHP 7, PHP 8)

DOMDocument::saveXML — 内部の XML ツリーを文字列として出力する

### 説明

public function DOMDocument::saveXML(?DOMNode `$node` = `null`, int `$options` = 0): string|false

DOM 表現から XML ドキュメントを作成します。この関数は、通常は以下の例のように DOM ドキュメントを新しく作成した後にコールされます。

### パラメータ

`node`

  ドキュメント全体ではなく、XML 宣言以外の特定のノードだけを 出力したい場合にこのパラメータを使用します。

`options`
  追加のオプション。 `LIBXML_NOEMPTYTAG` と `LIBXML_NOXMLDECL` が指定できます。 PHP 8.3.0 より前のバージョンでは、`LIBXML_NOEMPTYTAG` のみサポートされていました。

### 戻り値

XML、あるいはエラーが発生した場合は `false` を返します。

### エラー / 例外

以下のエラーコードで DOMException をスローします:

`DOM_WRONG_DOCUMENT_ERR`

  `node` が別のドキュメントのものである場合に 発生します。

### 変更履歴

バージョン | 説明
--- | ---
8.3.0 | LIBXML_NOXMLDECL がサポートされました。

### 例

例1 DOM ツリーを文字列に保存する

    <?php

    $doc = new DOMDocument('1.0');
    // 出力はきれいに整形したいですね。
    $doc->formatOutput = true;

    $root = $doc->createElement('book');
    $root = $doc->appendChild($root);

    $title = $doc->createElement('title');
    $title = $root->appendChild($title);

    $text = $doc->createTextNode('これはタイトルです');
    $text = $title->appendChild($text);

    echo "ドキュメント全体を保存します\n";
    echo $doc->saveXML() . "\n";

    echo "タイトルの部分のみを保存します\n";
    echo $doc->saveXML($title);

    ?>

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

    ドキュメント全体を保存します
    <?xml version="1.0"?>
    <book>
      <title>これはタイトルです</title>
    </book>

    タイトルの部分のみを保存します
    <title>これはタイトルです</title>

### 参考

- DOMDocument::save() - 内部の XML ツリーをファイルに出力する
- DOMDocument::load() - ファイルから XML を読み込む
- DOMDocument::loadXML() - 文字列から XML を読み込む

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open