确定DOMElement的父节点

use*_*601 12 php xml dom

我正在将用于YouTube视频评论的C#代码翻译成PHP.为了正确嵌套评论回复,我需要重新安排XML节点.在PHP中,我使用的是与C#XmlDocument密切对应的DOMDocument和DOMXPath.我在翻译中已经走得很远,但现在我一直在寻找DOMElement的父节点.DOMElement没有parent_node()属性,只有DOMNode提供该属性.

在确定评论是对链接元素中的字符串"in-reply-to"中的先前评论的回复之后,我需要获取其父节点以将其嵌套在它回复的评论下面:

// Get the parent entry node of this link element
$importnode = $objReplyXML->importNode($link->parent_node(), true);
Run Code Online (Sandbox Code Playgroud)

Mar*_*ius 21

DOMElementDOMNode的子类,因此它具有parent_node属性.只需使用$ domNode-> parentNode; 找到父节点.

在您的示例中,$ importnode的父节点为null,因为它已导入到文档中,因此尚未拥有父节点.您需要在拥有父元素之前将其附加到另一个元素.

  • DOMElement扩展了DOMNode,`DOMNode :: parentNode`是公共的,所以这个属性也可以在DOMElement上使用.http://php.net/manual/en/class.domnode.php和http://php.net/manual/en/class.domelement.php (4认同)