PHP DOMDocument: как получить прямой узел детей - PullRequest
0 голосов
/ 30 июля 2010

У меня есть следующее:

http://pastie.org/1066861

У меня есть функция Javascript, которая говорит мне, чтобы удалить данный узел из родительского, давайте предположим, что позиция 1 (от 0 или 1, так как у нас есть два дочерних узла в родительском), когда выполняем $ parent- > getElementsByTagName и пытаясь удалить элемент $ child-> item (1), я замечаю, что PHP GetElementsByTagName дает мне другую позицию для этого конкретного узла. Так что, как сказал JS, нет доступа к нужному узлу.

Полагаю, мне следует держаться подальше от getElementsByTagName и использовать getElementsById, но сейчас я хотел бы узнать и понять, почему это не работает должным образом.

Вот код: http://pastie.org/1066857

Большое спасибо за внимание; D

1 Ответ

1 голос
/ 30 июля 2010

Нашел решение,

/*
 * deleteNode() removes given node, in position X.
 */
function deleteNode( $html, $strParent, $intNodePosition ) {

    $domhtml = DOMDocument::loadHTML($html); 

    $xpath = new DOMXPath($domhtml);

    $divs = $xpath->query( "*/div[@id='maindiv']/div" );

    $node = $divs->item( $intNodePosition );

    $node->parentNode->removeChild( $node );

    /*
    this wont work, but why ? It should
    $divs->removeChild( $node );
    */

return $domhtml->saveHTML();

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