Определить родительский элемент 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);
Ответы
Ответ 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