DOMDocument::createElement
新しい要素ノードを作成する
説明
public DOMElementfalse DOMDocument::createElement(string $localName, string $value = "")
パラメータ
-
localName
-
要素のタグ名。
-
value
-
要素の値。デフォルトでは、空の要素が作成されます。
その後に DOMElement::$nodeValue
で値を設定することも可能です。
指定した値はすべてそのまま用いますが、エンティティ参照 < と >
だけはエスケープします。& は手動でエスケープする必要があることに注意しましょう。
そうしないと、エンティティ参照の開始とみなされてしまいます。また、" はエスケープされません。
戻り値
新しい DOMElement クラスの新しいインスタンス、
あるいはエラーが発生した場合は false を返します。
エラー / 例外
以下のエラーコードで DOMException
をスローします:
-
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 を使います。
参考
- DOMNode::appendChild
- DOMDocument::createAttribute
- DOMDocument::createAttributeNS
- DOMDocument::createCDATASection
- DOMDocument::createComment
- DOMDocument::createDocumentFragment
- DOMDocument::createElementNS
- DOMDocument::createEntityReference
- DOMDocument::createProcessingInstruction
- DOMDocument::createTextNode