$doc = new DOMDocument();
$doc->load('online.xml');//查找 online 节点
$root = $doc->getElementsByTagName('online');

//第一个 online 节点
$root = $root->item(0);

//查找 online 节点下的 userid 节点
$userid = $root->getElementsByTagName('userid');

//遍历所有 userid 节点
foreach ($userid as $rootdata)
{
//遍历每一个 userid 节点所有属性
foreach ($rootdata->attributes as $attrib)
{
$attribName = $attrib->nodeName;   //nodeName为属性名称
$attribValue = $attrib->nodeValue; //nodeValue为属性内容 //查找属性名称为ip的节点内容
if ($attribName =='ip')
{
//查找属性内容为ip的节点内容
if ($attribValue =='127.0.0.1')
{
//将属性为ip,ip内容为127.0.0.1的修改为localhost;
$rootdata->setAttribute('ip','localhost');
$doc->save('online.xml');
}
if ($attribValue =='127.0.0.2')
{
//修改文本
$rootdata->nodeValue="123456789";
$doc->save('online.xml');
}
if ($attribValue =='127.0.0.3')
{
//删除节点
$root->removeChild($rootdata);
$doc->save('online.xml');
}

}
}
}

解决方案 »

  1.   

    非常感谢楼上的解答,可出现了一个小问题。删除节点后呈现这种状态,那一行空出来了。我是做一个在线人数的东西,如果删一个节点就会空一行。那今后产生的空行相当的多,有办法解决吗?online.xml  
    --------------------------------------------------- 
    <?xml version="1.0"?>
    <online>
    <userid time="2007-06-13 11:19:32" ip="localhost">xinxin</userid>
    <userid time="2007-06-13 11:20:08" ip="127.0.0.1">xiaxin</userid>
    <userid time="2007-06-13 11:20:08" ip="127.0.0.1">xiaxin</userid>
    <userid time="2007-06-13 11:20:08" ip="123.0.0.1">xiaxin</userid>
    <userid time="2007-06-13 11:20:08" ip="231.23.1.2">xiaxin</userid><userid time="2007-06-13 13:22:15" ip="127.0.0.1">&#x59D3;&#x540D;</userid>
    <userid time="2007-06-13 17:17:00" ip="127.0.0.1"/></online>