Подтвердить что ты не робот

Определить родительский элемент Node DOMElement

Я перевожу свой код С# для комментариев к видео на YouTube в PHP. Чтобы правильно вложить комментарии, мне нужно переставить XML-узлы. В PHP я использую DOMDocument и DOMXPath, который близко соответствует С# XmlDocument. Я довольно далеко продвинулся в своем переводе, но теперь я застрял в получении родительского узла элемента DOME. Элемент DOMElement не имеет свойства parent_node(), только свойство DOMNode предоставляет это свойство.

После определения того, что комментарий является ответом на предыдущий комментарий, основанный на строке "in-reply-to" в элементе ссылки, мне нужно получить его родительский узел, чтобы вставить его под комментарий, на который он отвечает:

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

Ответ 1

DOMElement является подклассом DOMNode, поэтому он имеет свойство parent_node. Просто используйте $domNode- > parentNode; для поиска родительского node.

В вашем примере родительский node из $importnode имеет значение null, поскольку он был импортирован в документ и, следовательно, еще не имеет родителя. Вам нужно прикрепить его к другому элементу, прежде чем он родит.

Ответ 2

Я не совсем уверен, как работает ваш код, но похоже, что у вас небольшая ошибка в коде.

В строке, которую вы отправили в своем вопросе, у вас есть $link->parent_node(), но в ответе с полным фрагментом кода у вас есть $link**s**->parent_node().

Я не думаю, что s должен быть там.

Кроме того, я думаю, вы должны использовать $link- > parentNode, а не $link- > parent_node().

Ответ 3

Замените parent_node() на parentNode