DOMNode->appendChild()とは? わかりやすく解説

Weblio 辞書 > コンピュータ > PHP関数リファレンス > DOMNode->appendChild()の意味・解説 

DOMNode->appendChild()

(No version information available, might be only in CVS)
DOMNode->appendChild() — 子要素群の最後に新しい子要素を追加する

説明

class DOMNode {
DOMNode appendChild ( DOMNode newnode )
} この関数は、既存の子要素のリストに新しい子要素を追加するか、 あるいは新しい子要素リストを作成します。子要素の作成には DOMDocument->createElement()DOMDocument->createTextNode() などを使用するか、単に別のノードを使用します。

パラメータ

newnode
追加する子要素。

返り値

The node added.

エラー / 例外

DOM_NO_MODIFICATION_ALLOWED_ERR
ノードが読み込み専用であったり、挿入するノードの以前の親が 読み込み専用であったりした場合に発生します。
DOM_HIERARCHY_REQUEST_ERR
newnode で指定した型の子ノードを 保持することが許可されていない場合、あるいは追加しようとしている ノードが自分自身やその祖先であった場合に発生します。
DOM_WRONG_DOCUMENT_ERR
newnode が、このノードとは別の ドキュメントで作成されたものである場合に発生します。

以下の例は、新しいドキュメントに新しい要素を追加します。 例 509. 子要素の追加
<?php

$doc = new DOMDocument;

$node = $doc->createElement("para");
$newnode = $doc->appendChild($node);

echo $doc->saveXML();
?>


参考

DOMNode->removeChild()
DOMNode->replaceChild()


DomNode->append_child

(No version information available, might be only in CVS)
DomNode->append_child — 子ノードの最後に新規に子ノードを追加する

説明

class DOMNode {
DOMNode append_child ( DOMNode newnode )
} この関数は既存の子ノードに子ノードを追加する、 もしくは新規子ノードを作成します。

パラメータ

newnode
追加するノード。これには、例えば DomDocument->create_element, DomDocument->create_text_node など、もしくは単純にあらゆる他のノードによって作成されたノードを 指定することが可能です。
注意: このメソッドを使用して DOMAttribute を追加することはできません。代わりに DomElement->set_attribute() を使用してください。

返り値

成功時は追加されたノード、失敗時は FALSE を返します。

変更履歴

バージョン説明
4.3.0 他の文章からのノードを挿入することは、もはや許可されません。
4.3.0 PHP 4.3.0 以前では、新規子ノードは追加する前に複製されます。 そのため、新規子ノードは完全に新しいコピーとなります。これは、 この関数に渡されたノードを変更することなしに修正することが可能です。 渡されたノードが子ノード自身の場合うまくコピーされますので、 XML 文章の大きな部位を簡単にコピーすることができます。 戻り値は追加された子ノードです。 もし追加された子ノードを変更するつもりであれば、 返されたノードを使用する必要があります。
4.3.0 と 4.3.1 新規子ノード newnode がすでに DomNode の子ノードである場合、最初に既存のコンテキストから削除されます。 そのため、newnode は移動され、 コピーされません。この動作は W3C 規格に準じるものです。 もし古い動作をさせる必要がある場合、追加ではなく DomNode->clone_node を使用してください。
4.3.2 新規子ノード newnode がすでにツリーにある場合、 最初に既存のコンテキストから削除されます。同じ規則が適用されます。

以下の例は新規ドキュメントに新規要素ノードを追加し、 属性 alignleft に設定します。
例 534. 子ノードを追加する
<?php
$doc = domxml_new_doc("1.0");
$node = $doc->create_element("para");
$newnode = $doc->append_child($node);
$newnode->set_attribute("align", "left");
?>


上記の例は、以下のようにも書くことができました:
例 535. 子ノードを追加する
<?php
$doc = domxml_new_doc("1.0");
$node = $doc->create_element("para");
$node->set_attribute("align", "left");
$newnode = $doc->append_child($node);
?>


より複雑な例は以下の通りです。最初に特定の要素を検索し、 子を含むノードを複製し、兄弟ノードとして追加します。 最後に新規属性を新規兄弟ノード能古ノードの一つに追加し、 文章全体をダンプします。
例 536. 子ノードを追加する
<?php
include("example.inc");

if (!$dom = domxml_open_mem($xmlstr)) {
  echo "Error while parsing the document\n";
  exit;
}

$elements = $dom->get_elements_by_tagname("informaltable");
print_r($elements);
$element = $elements[0];

$parent = $element->parent_node();
$newnode = $parent->append_child($element);
$children = $newnode->children();
$attr = $children[1]->set_attribute("align", "left");

$xmlfile = $dom->dump_mem();
echo htmlentities($xmlfile);
?>


上記の例は DomNode->append_child の代わりに DomNode->insert_before を用いても動作します。

PHP 5 への移行

DOMNode->appendChild() を使用してください。

参考

DomNode->insert_before
DomNode->clone_node



このページでは「PHP関数リファレンス」からDOMNode->appendChild()を検索した結果を表示しています。
Weblioに収録されているすべての辞書からDOMNode->appendChild()を検索する場合は、下記のリンクをクリックしてください。
 全ての辞書からDOMNode->appendChild()を検索

英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「DOMNode->appendChild()」の関連用語

DOMNode->appendChild()のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



DOMNode->appendChild()のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
PHP Documentation GroupPHP Documentation Group
Copyright © 1997 - 2024 by the PHP Documentation Group.

©2024 GRAS Group, Inc.RSS