XML ノードに子要素を追加する

# SimpleXMLElement::addChild

(PHP 5 >= 5.1.3, PHP 7)

SimpleXMLElement::addChild — XML ノードに子要素を追加する

### 説明

public SimpleXMLElement::addChild ( string `$name` [, string `$value` [, string `$namespace` ]] ) : SimpleXMLElement

ノードに子要素を追加し、子要素の SimpleXMLElement を返します。

### パラメータ

`name`

  追加する子要素の名前。

`value`

  指定されている場合は、子要素の値。

`namespace`

  指定されている場合は、その子要素が所属する名前空間。

### 返り値

addChild メソッドは、 XML ノードに追加した子要素を表す SimpleXMLElement オブジェクトを返します。

### 例

> 注意:

> この例では example.php をインクルードしていますが、これは 基本的な使用法 の最初のサンプルにある XML 文字列を参照しています。

例1 SimpleXML 要素への属性と子要素の追加

`<?php
include 'example.php';
$sxe = new SimpleXMLElement($xmlstr);
$sxe->addAttribute('type', 'documentary');
$movie = $sxe->addChild('movie');
$movie->addChild('title', 'PHP2: More Parser Stories');
$movie->addChild('plot', 'This is all about the people who make it work.');
$characters = $movie->addChild('characters');
$character = $characters->addChild('character');
$character->addChild('name', 'Mr. Parser');
$character->addChild('actor', 'John Doe');
$rating = $movie->addChild('rating', '5');
$rating->addAttribute('type', 'stars');
echo $sxe->asXML();
?>`

上の例の出力は、 たとえば以下のようになります。

    <?xml version="1.0" standalone="yes"?>
    <movies type="documentary">
     <movie>
      <title>PHP: Behind the Parser</title>
      <characters>
       <character>
        <name>Ms. Coder</name>
        <actor>Onlivia Actora</actor>
       </character>
       <character>
        <name>Mr. Coder</name>
        <actor>El Act&#xD3;r</actor>
       </character>
      </characters>
      <plot>
       So, this language. It's like, a programming language. Or is it a
       scripting language? All is revealed in this thrilling horror spoof
       of a documentary.
      </plot>
      <great-lines>
       <line>PHP solves all my web problems</line>
      </great-lines>
      <rating type="thumbs">7</rating>
      <rating type="stars">5</rating>
     </movie>
     <movie>
      <title>PHP2: More Parser Stories</title>
      <plot>This is all about the people who make it work.</plot>
      <characters>
       <character>
        <name>Mr. Parser</name>
        <actor>John Doe</actor>
       </character>
      </characters>
      <rating type="stars">5</rating>
     </movie>
    </movies>

### 参考

- SimpleXMLElement::addAttribute() - SimpleXML 要素に属性を追加する
- 基本的な SimpleXML の使用法