首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > PHP >

新手发个php修改XML的有关问题!

2013-04-21 
新手发个php修改XML的问题!!$domnew DOMDocument(1.0)$dom-load(ceshi.xml)$root$dom-getElemen

新手发个php修改XML的问题!!


$dom=new DOMDocument('1.0');
$dom->load('ceshi.xml');
$root=$dom->getElementsByTagName('online');
$root=$root->item(0);
$userid=$root->getElementsByTagName('userid');
foreach($userid as $b)
{
  foreach($b->attributes as $attr){ 

$value=$attr->nodeValue;
$name[].=$attr->nodeName;
{if($value=="xiao")
{  
   print_r($name);   

}

 }
}

}
$dom->save('ceshi.xml');

 
 
来个xml


<?xml version="1.0"?>
<online> 
<userid time="2007-06-13 11:20:08" ip="wangqile" label="wang">xiaxin</userid> 
<userid time="2007-06-13 13:22:15" pp="dasdsa" label="xiao" ip="dasdsa">rwet</userid> 
<userid time="2007-06-13 17:17:00" ip="dasdsa" label="ji"> gaoji</userid> 
</online>




问题是按上面那种写法只循环label="xiao"的那一行,也就是只返回那一行nodename值。。
要是按上面写的话返回的是第一行第二行一起返回的nodename值。。我也没想出来怎么改~~新手求教啊!!!

[解决办法]
本帖最后由 xuzuning 于 2013-04-20 10:25:31 编辑 这个意思?
$dom=new DOMDocument('1.0');
$dom->load('ceshi.xml');
$root=$dom->getElementsByTagName('online');
$root=$root->item(0);
$userid=$root->getElementsByTagName('userid');
foreach($userid as $b) {
  if($b->attributes->getNamedItem('label')->nodeValue == 'xiao') {
    foreach($b->attributes as $attr){
      $res[$attr->nodeName] = $attr->nodeValue;
    }
    print_r($res);
  }
}
Array
(
    [time] => 2007-06-13 13:22:15
    [pp] => dasdsa
    [label] => xiao
    [ip] => dasdsa
)

热点排行