(PHP 5, PHP 7, PHP 8)
DOMDocument::createElement — 新しい要素ノードを作成する
この関数は、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() を使います。