指定したノードの子ノードを見付ける

# SimpleXMLElement::children

(PHP 5, PHP 7, PHP 8)

SimpleXMLElement::children — 指定したノードの子ノードを見付ける

### 説明

public function SimpleXMLElement::children(?string `$namespaceOrPrefix` = `null`, bool `$isPrefix` = `false`): ?SimpleXMLElement

このメソッドは、指定した要素の子を見つけます。 結果は、通常の反復子により取得できます。

> 注意: SimpleXML では、ほとんどのメソッドに反復処理を追加するための手順が定義されています。 これらは、var_dump() やオブジェクトを評価する他の手段で 見ることはできません。

### パラメータ

`namespaceOrPrefix`

  XML 名前空間。

`isPrefix`

  `isPrefix` が `true` の場合は `namespaceOrPrefix` をプレフィックスとして扱います。`false` の場合は `namespaceOrPrefix` を名前空間 URL として扱います。

### 戻り値

ノードが子を持つかどうかにかかわらず SimpleXMLElement 要素を返します。 ノードが属性である場合は、`null` を返します。

### 例

例1 `children()` 疑似配列を走査する

    <?php
    $xml = new SimpleXMLElement(
    '<person>
     <child role="son">
      <child role="daughter"/>
     </child>
     <child role="daughter">
      <child role="son">
       <child role="son"/>
      </child>
     </child>
    </person>');

    foreach ($xml->children() as $second_gen) {
        echo ' The person begot a ' . $second_gen['role'];

        foreach ($second_gen->children() as $third_gen) {
            echo ' who begot a ' . $third_gen['role'] . ';';

            foreach ($third_gen->children() as $fourth_gen) {
                echo ' and that ' . $third_gen['role'] .
                    ' begot a ' . $fourth_gen['role'];
            }
        }
    }
    ?>

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

    The person begot a son who begot a daughter; The person
    begot a daughter who begot a son; and that son begot a son

例2 名前空間の使用

    <?php
    $xml = '<example xmlns:foo="my.foo.urn">
      <foo:a>Apple</foo:a>
      <foo:b>Banana</foo:b>
      <c>Cherry</c>
    </example>';

    $sxe = new SimpleXMLElement($xml);

    $kids = $sxe->children('foo');
    var_dump(count($kids));

    $kids = $sxe->children('foo', TRUE);
    var_dump(count($kids));

    $kids = $sxe->children('my.foo.urn');
    var_dump(count($kids));

    $kids = $sxe->children('my.foo.urn', TRUE);
    var_dump(count($kids));

    $kids = $sxe->children();
    var_dump(count($kids));
    ?>

    int(0)
    int(2)
    int(2)
    int(0)
    int(1)

### 参考

- SimpleXMLElement::count() - 子要素を数える
- count() - 配列または Countable オブジェクトに含まれるすべての要素の数を数える

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