2013-07-29 25 views
1

我有DOMElement。我怎麼能發現,它是一個DOMDocument的子節點?問題的如何找出DOMElement/DOMNode是否是PHP中DOMDocument的子節點?

背景:

[A一個DOMElement對象]是隻讀的。它可以附加到文檔 ,但在節點 與文檔關聯之前,可能不會將其他節點附加到該節點。 (見 here)。


編輯:

DOMNode#getNodePath()得到用於該節點的XPath位置路徑。根節點具有路徑/。如果節點的位置不等於/,則節點是子元素。

但是,這隻適用於子節點。如果它是一個 「獨立的」 節點對象,則會出現警告:

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

警告:的DOMNode :: getNodePath():在/path/too/foo.php無法獲取的DOMNode上線16

回答

-1

檢查類的類型是:

if($dom instanceof \DOMDocument) { ... } 
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 
} 
相關問題