我用程序多进程读写1个xml 文件 结果会出现结尾的根节点多了一个 出现异常 是不是因为多进程出了问题? 有没有办法锁定?<maps>
  <map>test1</map>
  <map>test2</map>
  <map>test3</map>
</maps></maps>这个多出的结束节点不知道怎么形成的~~~ 有高手知道吗?

解决方案 »

  1.   

    把代码贴出来,大家看看嘛,也许不是并发引起的问题呢?如果你真的确定是并发的问题,参考下面的帖子
    http://www.eb163.com/club/thread-2232-1-1.html
      

  2.   

    代码太长了
    $dom    = new DOMDocument("1.0","utf-8");
    $mapfile   = "./cache/xml/map.xml";
    $mroot     = $dom->createElement('maps');
    $dom->appendChild($mroot);
    $map    = $dom->createElement("map");
    $mroot->appendChild($map);
    $mgroupid  = $dom->createElement("groupid");
    $mgroupidText = $dom->createTextNode("test11");
    $mgroupid->appendChild($mgroupidText);
    $map->appendChild($mgroupid);
    $dom->save($mapfile);
    基本就是一个 dom的xml生成程序 但是~~并发很频繁~~结果就发现 Xml文件总是出现这个问题
      

  3.   

    谢谢你啊~~~不过你这个是 fwrite 我用的是 dom 
      

  4.   

    高并发的东西不应该用XML文件做
      

  5.   

    缓存用 database 的memort table 或 memcache
    xml 做高并发缓存只会降低效能