SimpleXML 要素に基づき整形式の XML 文字列を返す

# SimpleXMLElement::asXML

(PHP 5, PHP 7, PHP 8)

SimpleXMLElement::asXML — SimpleXML 要素に基づき整形式の XML 文字列を返す

### 説明

public function SimpleXMLElement::asXML(?string `$filename` = `null`): string|bool

`asXML` メソッドは、親オブジェクトのデータを XML version 1.0 形式にフォーマットします。

### パラメータ

`filename`

  文字列を指定した場合、データを返すかわりにファイルにデータを書き込みます。

### 戻り値

`filename` が指定されていない場合、この関数は 成功時に string 、エラー時に `false` を返します。 パラメータが指定されていた場合は、ファイルが正常に書き込めたときに `true` 、そうでないときに `false` を返します。

### 変更履歴

バージョン | 説明
--- | ---
8.0.0 | `filename` は、nullable になりました。

### 例

例1 XML を取得する

    <?php
    $string = <<<XML
    <a>
     <b>
      <c>text</c>
      <c>stuff</c>
     </b>
     <d>
      <c>code</c>
     </d>
    </a>
    XML;

    $xml = new SimpleXMLElement($string);

    echo $xml->asXML();

    ?>

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

    <?xml version="1.0"?>
    <a>
     <b>
      <c>text</c>
      <c>stuff</c>
     </b>
     <d>
      <c>code</c>
     </d>
    </a>

`asXML` は Xpath の結果にも適用できます:

例2 SimpleXMLElement::xpath() の結果に asXML() を使用する

    <?php
    $string = <<<XML
    <a>
     <b>
      <c>text</c>
      <c>stuff</c>
     </b>
     <d>
      <c>code</c>
     </d>
    </a>
    XML;

    $xml = new SimpleXMLElement($string);

    /* <a><b><c>を探す */
    $result = $xml->xpath('/a/b/c');

    foreach ($result as $node) {
        echo $node->asXML();
    }
    ?>

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

    <c>text</c><c>stuff</c>

### 参考

- SimpleXMLElement::__toString() - 文字列で要素の内容を返す
- 基本的な SimpleXML の使用法

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