DOMDocument::createElement

(PHP 5, PHP 7, PHP 8)

DOMDocument::createElement新しい要素ノードを作成する

説明

public DOMDocument::createElement(string $localName, string $value = ""): DOMElement|false

この関数は、DOMElement クラスの新しいインスタンスを作成します。 このノードは、( DOMNode::appendChild() などで) 挿入されない限り、ドキュメント内にあらわれません。

パラメータ

localName

要素のタグ名。

value

要素の値。デフォルトでは、空の要素が作成されます。 その後に DOMElement::$nodeValue で値を設定することも可能です。

指定した値はすべてそのまま用いますが、エンティティ参照 < と > だけはエスケープします。& は手動でエスケープする必要があることに注意しましょう。 そうしないと、エンティティ参照の開始とみなされてしまいます。また、" はエスケープされません。

戻り値

新しい DOMElement クラスの新しいインスタンス、 あるいはエラーが発生した場合は false を返します。

エラー / 例外

DOM_INVALID_CHARACTER_ERR

localName が無効な文字を含んでいる場合に発生します。

例1 新しい要素を作成し、ルートとして挿入する

<?php

$dom 
= new DOMDocument('1.0''utf-8');

$element $dom->createElement('test''This is the root element!');

// 新しい要素をルート (ドキュメントの子要素) として挿入する
$dom->appendChild($element);

echo 
$dom->saveXML();
?>

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

<?xml version="1.0" encoding="utf-8"?>
<test>This is the root element!</test>

例2 & をエスケープせずに value に渡す例

<?php
$dom 
= new DOMDocument('1.0''utf-8');
$element $dom->createElement('foo''me & you');
$dom->appendChild($element);
echo 
$dom->saveXML();
?>

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

Warning: DOMDocument::createElement(): unterminated entity reference             you in /in/BjTCg on line 4
<?xml version="1.0" encoding="utf-8"?>
<foo/>

注意

注意:

valueエスケープされませんエスケープに対応した テキストノードを作るには DOMDocument::createTextNode() を使います。

参考

関連キーワード:  作成, DOMDocument, 要素, ノード, エスケープ, DOMElement, createElement, 注意, localName, 参照