2

我有一个DOMElement. 我怎样才能知道它是否是 a 的子节点DOMDocument

问题背景:

[A DOMElement 对象] 是只读的。它可以附加到文档,但在节点与文档相关联之前,其他节点可能不会附加到该节点。(见 这里)。


编辑:

DOMNode#getNodePath()获取节点的 XPath 位置路径。根节点有路径/。因此一个节点是一个子元素,如果它的位置不等于/

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

$test = new \DOMNode();
echo $test->getNodePath();

警告:DOMNode::getNodePath(): 无法在第 16 行的 /path/too/foo.php 中获取 DOMNode

4

2 回答 2

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
}
于 2014-03-10T22:01:38.243 回答
-1

检查类的类型:

if($dom instanceof \DOMDocument) { ... }
于 2014-03-10T21:40:38.790 回答