Php/docs/domdocument.createelement

提供:Dev Guides
< Php
移動先:案内検索

DOMDocument::createElement

(PHP 5, PHP 7)

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


説明

public DOMDocument::createElement ( string $name [, string $value ] ) : DOMElement

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


パラメータ

name

要素のタグ名。

value

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

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


返り値

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


エラー / 例外

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


例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() を使います。

参考