这里是我设置基本变量的地方,例如创建新的DomDoc,以及加载一些标签。这一切都很好。
<?php
if (isset($_GET['edit'])&& $_GET['edit']=='delete' && isset($_GET['id'])&&!empty($_GET['id'])){
$dom = new DomDocument();
$dom->preserveWhiteSpace = false;
$dom->load("data.xml");
$root = $dom->documentElement;
$record = $root->getElementsByTagName("data");
$ID=$root->getElementsByTagName("ID");
$nodetoremove = null;
//$namenode=$root->getElementsByTagName("own_name");
//$name="";
//$datenode=$root->getElementsByTagName("sign_in");
//$date="";
$newid=$_GET['id'];
foreach($ID as $node){
$pid =$node->textContent;
我在这里检查它是否是新ID,如果是,它会执行以下操作。
if ($pid == $newid)
{
$nodetoremove=$node->parentNode;
}
}
问题在这里。我能够通过我想要删除的选定节点($ nodetoremove)并选择一个特定元素(sign_in),但我不确定如何这样做。现在我所能做的就是遍历并打印$ nodetoremove节点内的所有元素。有没有办法可以通过这种方式从XML中获取我想要的元素?
//Prints all information within $nodetoremove
foreach ($nodetoremove->childNodes AS $item){
print $item->nodeName . "=" . $item->nodeValue . "<br>";
}
foreach ($nodetoremove as $node) {
}
//Sets $name to the first Child of $nodetoremove
$name=$nodetoremove->firstChild->nodeValue;
//Checks if the nods to remove is not null, if it is removes $nodetoremove
if($nodetoremove!=null){
$root->removeChild($nodetoremove);
?>