我做的一个,用php,ajax,xml技术实现,但是有个问题解决不了,就是如果连续说话,就会有数据重复现像,也就是把xml里的数据又完全输出,现像如下:
aa说:aaa
bb说:bbb
如果BB再说的话,
就是这个样子:
aa说:aaa
bb说:bbb
aa说:aaa
bb说:bbb
bb说:ccc
请教高手怎么解决这个问题,不使用数据库。

解决方案 »

  1.   

    http://topic.csdn.net/u/20090601/11/aa9079f2-ba25-4984-bb74-97ed731a33c5.html这个是我做的,你可以先看看我使用传递最大ID,然后回传ID的方法,不会出现重复现象。注:此ID为key,并自增
      

  2.   

    既然是取回的XML完全输出,原来已有的部分所在的DOM节点完全更新一次不就可以了么,而不要在后面添加的方式。
      

  3.   

    高人》》这个怎么作?我就是不会这部分,或是只保存20条记录,超过就DELETE也可以,现在的问题又多了,现在我已经修正了,不重复数据了,但是XML文件越写越大!
    只要更新原有的XML文件是最好的!不过我没写过呀,用哪个方法了??
      

  4.   

    wpwppp
    ////////////////////////
    既然是取回的XML完全输出,原来已有的部分所在的DOM节点完全更新一次不就可以了么,而不要在后面添加的方式。
    高人》》这个怎么作?我就是不会这部分,或是只保存20条记录,超过就DELETE也可以,现在的问题又多了,现在我已经修正了,不重复数据了,但是XML文件越写越大! 
    只要更新原有的XML文件是最好的!不过我没写过呀,用哪个方法了??
      

  5.   

    //////////////////
    我建的XML$doc=new DOMDocument('1.0');
    @$doc->load("../home/data.xml");
    $data=$doc->getElementsByTagName("data")->item(0);//
    $item=$doc->createElement('item');
    $username=$doc->createElement("username",utf8_encode($nick));
    $item->appendChild($username);
    $content   = $doc->createElement("content",utf8_encode($msg));
    $item->appendChild($content);
    $data->appendChild($item);

    $doc->save('data.xml');
    读取时的!:
    /////////////////////////
    $doc = new DOMDocument('1.0');
    @$doc->load('data.xml');
    $doc->formatOutput = true;//格式化输出属性,默认是false
    $items = $doc->getElementsByTagName("item");
    foreach($items as $item){
    $user=$item->getElementsByTagName("username");
    $user=$user->item(0)->nodeValue;
    $user = utf8_decode($user);
    $content=$item->getElementsByTagName("content");
    $con=$content->item(0)->nodeValue;
    $con=utf8_decode($con);

    $ret.= "<p><span style=\"color:#FF66FF\">【".$user."】</span>说:".$con."</p>";

    }
    return $ret;
    然后我想在后面加一个方法用来删除前面 的节点。
    或是在写的时候覆盖也行,不过,不知道怎么重写,
      

  6.   

    还有呀,我的保留11条记录!这个在XML里做删节点时,不好判断呀!