确定DOMElement的父节点

时间:2020-03-05 18:43:30  来源:igfitidea点击:

我正在将YouTube视频评论的Ccode转换为PHP。为了正确地嵌套注释回复,我需要重新排列XML节点。在PHP中,我使用DOMDocument和DOMXPath,它们与CXmlDocument紧密对应。我的翻译已经走得很远了,但是现在我被困在获取DOMElement的父节点上。 DOMElement不具有parent_node()属性,只有DOMNode提供该属性。

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

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

解决方案

回答

DOMElement是DOMNode的子类,因此它确实具有parent_node属性。只需使用$ domNode-> parentNode;查找父节点。

在示例中,$ importnode的父节点为null,因为它已被导入到文档中,因此还没有父节点。我们需要先将其添加到另一个元素上,然后再具有父元素。

回答

我不确定代码如何工作,但似乎代码中有一个小错误。

我们在问题中发布的行上有$ link-> parent_node(),但在包含完整代码段的答案中,我们有$ link ** s **-> parent_node()

我认为s不应该在那儿。

另外,我认为我们应该使用$ link-> parentNode,而不是$ link-> parent_node()。