我正在将用于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);
答案 0 :(得分:21)
DOMElement是DOMNode的子类,因此它具有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