DOMDocument::createElement

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

説明

public DOMElementfalse DOMDocument::createElement(string $localName, string $value = "")

この関数は、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 を使います。

参考

  • DOMNode::appendChild
  • DOMDocument::createAttribute
  • DOMDocument::createAttributeNS
  • DOMDocument::createCDATASection
  • DOMDocument::createComment
  • DOMDocument::createDocumentFragment
  • DOMDocument::createElementNS
  • DOMDocument::createEntityReference
  • DOMDocument::createProcessingInstruction
  • DOMDocument::createTextNode