我有DOMElement
。我如何才能知道它是DOMDocument
的子节点?
问题的背景:
[DOMElement对象]是只读的。它可以附在文件上, 但是在节点之前可能不会将附加节点附加到此节点 与文档相关联。 (看到 here)。
编辑:
DOMNode#getNodePath()
获取节点的XPath位置路径。根节点具有路径/
。如果节点的位置不等于/
,则节点是子元素。
但这仅适用于子节点。如果它是“独立”节点对象,则会发出警告:
$test = new \DOMNode();
echo $test->getNodePath();
警告:DOMNode :: getNodePath():无法在第16行的/path/too/foo.php中获取DOMNode
答案 0 :(得分:0)
您应该检查ownerDocument
属性:
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
}
答案 1 :(得分:-1)
检查它的类型:
if($dom instanceof \DOMDocument) { ... }