Я перевожу свой код C# для комментариев к видео YouTube на PHP. Чтобы правильно вложить ответы на комментарии, мне нужно переупорядочить узлы XML. В PHP я использую DOMDocument и DOMXPath, что близко соответствует C# XmlDocument. Я довольно далеко продвинулся в своем переводе, но теперь я застрял на получении родительского узла 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 ().
Заменить parent_node() на parentNode
DOMElement расширяет DOMNode, а
DOMNode::parentNodeявляется общедоступным, поэтому это свойство также доступно для DOMElement. php.net/manual/en/class.domnode.php и php.net/manual/en/class.domelement.php