如何在PHP中删除XML的节点

如何在PHP中删除XML的节点,php,xml,Php,Xml,我需要删除字符串中XML的前N个节点 $xml = new SimpleXMLElement($xmlString, LIBXML_NOCDATA); $node = $nodes->xpath("/data/event"); $total_nodes = count($node); $delete_n_rows = $total_nodes-$N; for($i=0; $i<$delete_n_rows; $i++){

我需要删除字符串中XML的前N个节点

    $xml = new SimpleXMLElement($xmlString, LIBXML_NOCDATA);

    $node = $nodes->xpath("/data/event");
    $total_nodes = count($node);

    $delete_n_rows = $total_nodes-$N;

    for($i=0; $i<$delete_n_rows; $i++){
        if ( ! empty($node)) {
           unset($node[i]);
        }
    }
$xml=newsimplexmlement($xmlString,LIBXML\u NOCDATA);
$node=$nodes->xpath(“/data/event”);
$total_nodes=计数($node);
$delete_n_rows=$total_nodes-$n;
对于($i=0;$i)

如您所见,我正在尝试使用SimpleXMLElement,但我也很乐意使用任何其他解决方案。

当我没有ID并尝试删除前N个节点时,这段代码最终对我有效

//Where this->xml is my x
$node = $this->xml->xpath("/data/event");
$total_nodes = count($node)- $n_events;

for($i=0; $i<$total_nodes; $i++){
     $dom=dom_import_simplexml($this->xml->event[0]);
     $dom->parentNode->removeChild($dom);
}
//If you want back to String
//$this->xml->asXML(); //At this point I want a SimpleXML with a content that i wish,
//这里的->xml是我的x
$node=$this->xml->xpath(“/data/event”);
$total_nodes=计数($node)$n_事件;
对于($i=0;$ixml->event[0]);
$dom->parentNode->removeChild($dom);
}
//如果你想回到字符串
//$this->xml->asXML();//此时我想要一个SimpleXML,其中包含我想要的内容,

不确定该链接是否提供了我的答案,但我最终得到了答案。请注意,在我的问题中,事件没有ID字段,因此有点棘手。是的,
ID
没有您需要的答案,但我看到您确实找到了答案:)
//Where this->xml is my x
$node = $this->xml->xpath("/data/event");
$total_nodes = count($node)- $n_events;

for($i=0; $i<$total_nodes; $i++){
     $dom=dom_import_simplexml($this->xml->event[0]);
     $dom->parentNode->removeChild($dom);
}
//If you want back to String
//$this->xml->asXML(); //At this point I want a SimpleXML with a content that i wish,