遍历一个xml文档,
找到具有指定元素名的节点,而这个元素的某个属性又具有特定的值。
然后删除这个节点。
保存到xml文件中。
function removenode($xmldir,$xmlname,$nodename,$Attributesname,$Attributesvalue)
{}
找到具有指定元素名的节点,而这个元素的某个属性又具有特定的值。
然后删除这个节点。
保存到xml文件中。
function removenode($xmldir,$xmlname,$nodename,$Attributesname,$Attributesvalue)
{}
$doc->load($xmldir."/".$xmlname);$root = $doc->documentElement;
$childlist = $root->getElementsByTagName($nodename);//$child_last=$child->item(0)->nodeName;
$lastindex='';foreach ($childlist as $new){
$attrs=$new->attributes; //
$length=$attrs->length;
for ($i=0;$i<$length;$i++)
{
//这个节点的各个属性
$tempnode=$attrs->item($i);
if (($tempnode->nodeName==$Attributesname)&&($tempnode->nodeValue==$Attributesvalue)){
$lastindex=$k;
$root->removeChild($new);
//这个节点的
break;
}
}}
嗯,从新改了一下,可以了。
function removenode($xmldir,$xmlname,$nodename,$Attributesname,$Attributesvalue){//$xml_str = file_get_contents($xmldir."/".$xmlname); //将root.xml文件中的内容读入一个字符串$doc= new DOMDocument();
$doc->load($xmldir."/".$xmlname);$root = $doc->documentElement;
$childlist = $root->getElementsByTagName($nodename);//$child_last=$child->item(0)->nodeName;
$lastindex='';foreach ($childlist as $k=>$v){
$attrs=$v->attributes; //
$length=$attrs->length;
for ($i=0;$i<$length;$i++)
{
//这个节点的各个属性
$tempnode=$attrs->item($i);
if (($tempnode->nodeName==$Attributesname)&&($tempnode->nodeValue==$Attributesvalue)){
$lastindex=$k;
$parent=$childlist->item($k)->parentNode;
//echo $parent->nodeType;
//exit; $parent->removeChild($v);
//这个节点的
break;
}
}}//保存文件
$doc->formatOutput = true;
$doc->saveXML();
$doc->save($xmldir."/".$xmlname);
}