16

我正在将用于 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);
4

3 回答 3

26

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

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

于 2008-08-26T19:44:21.737 回答
2

替换parent_node()parentNode

于 2018-03-31T10:16:06.910 回答
1

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

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

我不认为s应该在那里。

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

于 2008-08-26T20:07:43.350 回答