【PHP8.x】isEqualNodeメソッドの使い方

isEqualNodeメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

isEqualNodeメソッドは、DOMNodeクラスに属するメソッドで、現在のDOMノードと引数として渡された別のDOMノードが、構造的および内容的に等しいかどうかを比較するメソッドです。このメソッドは、主にXMLやHTMLドキュメントを操作する際に、特定のノードが期待通りの構造と内容を持っているかを検証するために利用されます。

比較の対象となるのは、ノードの種類(例えば、要素ノード、テキストノード、属性ノードなど)、ノード名、ノード値、そしてノードに設定されているネームスペースURIです。さらに、要素ノードであればその属性のリストと子ノードのリスト、テキストノードであればその文字列内容といった詳細な情報までを深層的に比較します。

重要な点として、この比較ではノードが属するドキュメント(所有者ドキュメント)は考慮されません。つまり、異なるドキュメントに属しているノードであっても、その構造と内容が同一であれば等しいと判断されます。また、setUserData()メソッドなどでノードに付与されたユーザーデータも比較の対象外です。

比較の結果、両方のノードがすべての比較条件において等しいと判断された場合にはブール値の true を返します。一方、一つでも異なる点が見つかった場合には false を返します。DOMツリーの一部を比較したり、プログラムによって生成されたノードが既存のノードと一致するかどうかを確認したりする場面で、このメソッドは非常に有効です。

構文(syntax)

1<?php
2$node1 = new DOMElement('example');
3$node2 = new DOMElement('example');
4$areNodesEqual = $node1->isEqualNode($node2);
5?>

引数(parameters)

DOMNode $otherNode

  • DOMNode $otherNode: 比較対象のDOMNodeオブジェクト

戻り値(return)

bool

DOMNode::isEqualNode メソッドは、2つのノードが同一のノードであるかを比較し、その結果を真偽値(bool)で返します。ノードが同一であれば true、そうでなければ false が返されます。