如何确定DomeElement/DOMNode是否是PHP中DOMDocument的子节点?

如何确定DomeElement/DOMNode是否是PHP中DOMDocument的子节点?,php,dom,domdocument,appendchild,Php,Dom,Domdocument,Appendchild,我有一本书。我怎样才能知道它是一个网络的子节点 问题的背景: [A DomeElement对象]是只读的。它可以附加到文件中, 但是,在添加节点之前,不能将其他节点附加到此节点 与文档关联。(见 ) 编辑: 获取节点的XPath位置路径。根节点具有路径/。因此,如果节点的位置不等于/,则节点是子元素 但这只适用于子节点。如果是“独立”节点对象,则会发出警告: $test = new \DOMNode(); echo $test->getNodePath(); 警告:DOMNode::g

我有一本书。我怎样才能知道它是一个网络的子节点

问题的背景:

[A DomeElement对象]是只读的。它可以附加到文件中, 但是,在添加节点之前,不能将其他节点附加到此节点 与文档关联。(见 )


编辑:

获取节点的XPath位置路径。根节点具有路径
/
。因此,如果节点的位置不等于
/
,则节点是子元素

但这只适用于子节点。如果是“独立”节点对象,则会发出警告:

$test = new \DOMNode();
echo $test->getNodePath();
警告:DOMNode::getNodePath():无法在第16行的/path/too/foo.php中获取DOMNode


检查所属类别的类型:

if($dom instanceof \DOMDocument) { ... }

检查所属类别的类型:

if($dom instanceof \DOMDocument) { ... }

您应该检查
所有者文档
属性:

if ($node->ownerDocument === $document) {
    // $node is part of $document
} else {
    $importedNode = $document->importNode($node, true);
    // now you can append the node wherever you choose in the document
}

您应该检查
所有者文档
属性:

if ($node->ownerDocument === $document) {
    // $node is part of $document
} else {
    $importedNode = $document->importNode($node, true);
    // now you can append the node wherever you choose in the document
}