确定DOMElement的父节点

时间:2008-08-26 19:14:01

标签: 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);

3 个答案:

答案 0 :(得分:21)

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

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

答案 1 :(得分:1)

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

在您在问题中发布的行$link->parent_node(),但在整个代码段的答案中,您有$link**s**->parent_node()

我认为s不应该存在。

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

答案 2 :(得分:0)

parent_node()替换为parentNode