Exception xml+php


Exception xml+php

好吧,伙计们,这段代码处理了这个异常,我不知道为什么。。。

exception:致命错误:未捕获异常"DOMException",消息为中的"未找到错误"C: ''AppServ''www''CpVela''publicidades''delete_pub.php:14堆栈跟踪:#0C: ''AppServ''www''CpVela''publicidades''delete_pub.php(14):DOMNode->removeChild(Object(DOMElement))#1{main}抛出C: 第14行上的''AppServ''www''CpVela''publicidades''delete_pub.php

    <?php
   include "../src/defines.php";
if(!empty($_GET['CDG'])){
    $doc = new DOMDocument; 
    $doc->load(DIR_PUBLICIDADES);
    $thedocument = $doc->documentElement;
    $list = $thedocument->getElementsByTagName('item');
    echo $list->length;
    $nodeToRemove = NULL;
    foreach ($list as $domElement){
      $attrValue = $domElement->getAttribute('numero');
      if ($attrValue == $_GET['CDG']) {
        $nodeToRemove = $domElement; 
        $thedocument->removeChild($nodeToRemove); // <<< line 14
        $f = fopen(DIR_PUBLICIDADES,'w+'); 
        fwrite($f,$doc->saveXML()); 
        fclose($f); 
      }
    }
    if ($nodeToRemove != null){
        $thedocument->removeChild($nodeToRemove);
        $f = fopen(DIR_PUBLICIDADES,'w+'); 
        fwrite($f,$doc->saveXML()); 
        fclose($f); 
    }
}
    header("location:publicidades.php"); 

    ?>

我的代码XML是

<?xml version="1.0" encoding="utf-8"?>
<publicidades>
    <internas>
        <item nombre="Tony Roma's" numero="SOL_17"   posX="266" posY="229" telefono="" web="" correo="" encargado="" descripcion=""  promocion="" ></item>
    </internas>
    <externas>
    </externas>
</publicidades>

问题出在removeChild方法上。此错误是由于:

如果oldnode不是此节点的子节点,则引发。

CCD_ 1参考CCD_,而CCD_ 3参考作为CCD_。

<item><internas>的子代,而不是<public...>的子代。

编辑:尝试添加:

$internas = $doc->documentElement->getElementsByTagName('internas');

紧随其后:

$thedocument = $doc->documentElement;

然后:(EDIT2

foreach ($internas as $node) {
    $node->parentNode->removeChild($node);
}