Определить родительский узел DOMElement - PullRequest
12 голосов
/ 26 августа 2008

Я перевожу свой код C # для комментариев к видео на YouTube в PHP. Чтобы правильно вложить комментарии, мне нужно переставить XML-узлы. В PHP я использую DOMDocument и DOMXPath, который близко соответствует C # 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);

Ответы [ 3 ]

21 голосов
/ 26 августа 2008

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

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

1 голос
/ 27 августа 2008

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

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

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

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

0 голосов
/ 31 марта 2018

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...