关于php:确定DOMElement的父节点

关于php:确定DOMElement的父节点

Determine Parent Node Of DOMElement

我正在将用于 YouTube 视频评论的 C# 代码翻译成 PHP。为了正确嵌套评论回复,我需要重新排列 XML 节点。在 PHP 中,我使用与 C# XmlDocument 密切对应的 DOMDocument 和 DOMXPath。我的翻译已经取得了相当大的进展,但现在我被困在获取 DOMElement 的父节点上。 DOMElement 没有 parent_node() 属性,只有 DOMNode 提供该属性。

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

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

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

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


parent_node() 替换为 parentNode


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

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

我认为 s 不应该在那里。

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


推荐阅读