doutangliang7769 2010-07-30 09:43
浏览 134
已采纳

PHP DOMDocument:如何获得直接节点子节点

I've got the following:

http://pastie.org/1066861

I've got a Javascript function, that tells me to delete a given node from the parent, let's assume position 1 ( from 0 or 1, since we've got two child nodes on parent ), When doing $parent->getElementsByTagName and trying to remove the the $child->item( 1 ), I notice that PHP GetElementsByTagName is giving me a diferent position, for that specific node. So, there's no way to access the right node, that JS told.

I guess I should stay away of getElementsByTagName, and use getElementsById, but right now I would like to learn and understand why this doesnt work properly.

Here's some code: http://pastie.org/1066857

Thanks a lot for your atention ;D

  • 写回答

1条回答 默认 最新

  • douyanguo7964 2010-07-30 10:40
    关注

    Found a solution,

    /*
     * 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
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 LiBeAs的带隙等于0.997eV,计算阴离子的N和P
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 来真人,不要ai!matlab有关常微分方程的问题求解决,
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?
  • ¥100 求三轴之间相互配合画圆以及直线的算法