simpleXML的操作脱离不了dom,simpleXML不提供所有数据导出到数组的功能,这样就不能进行数据缓存(可以序列化节点后缓存,但是影响速度),本身不具备添加删除功能,dom的添加修改删除,太烦.simpleXML只是适合做固定结构xml的一些查询,例如修改原来的xml,我加了一个属性或是一个子节点,你的解析xml部分的代码肯能就需要改.我的程序可以导出某个节点的信息到一个数组里,这样他的这个节点的所有的改动我都不用管,这些改动结果都在返回的数组里面了,操作数组应该比操作其他的东西简单多了吧.在我的代码中, 最低级的节点是一个value,我没有把它视为节点,并且这个最低级的节点也可以由属性.

解决方案 »

  1.   

    呵呵,昨天晚上在phpe已经看到了呢...
      

  2.   

    我也做过一个xml类
    添加删除还算方便
    就是查询还要改进
      

  3.   

    你导出到数组的目的是为了什么?
    数据缓存的目的又是什么?
    XML不是数据库,使用xsl解析又是在客户端,又不会浪费服务器端的资源
    你缓存结果的意义是什么?
      

  4.   

    你导出到数组的目的是为了什么?
    数据缓存的目的又是什么?
    导出数组操作方便,,方便进行缓存,缓存数组的时候还可以不用序列化(反序列化其实效率很低的),我的map文件是后台用的,目前有150k,所以需要缓存,否是每次解析效率奇差.
    XML不是数据库,使用xsl解析又是在客户端,又不会浪费服务器端的资源
    我有不是用xml作模板文件,我的xml都是一些配置文件和客户上传数据文件怎么可能在客户端的解析呢?况且有些浏览器好像对xsl的支持不是很好.我的xml文件都是后台服务端用的.你缓存结果的意义是什么?
    当然是加快速度了.150k的xml解析和缓存比前来,速度差数很多的.如果我把大的xml文件有分开缓存成100个分散的小的缓存文件.那速度就有天壤之别了, 呵呵.
      

  5.   

    明白了,像struct的controller的配置文件一样,采用XML解析的。
    不过你可以分成多个小的XML文件啊,150K解析起来肯定快不了。
    不知道struct解析的时候是怎么做的,如果文件太大缓存还是有必要的。
    配置文件一般不会经常修改,恩。
      

  6.   

    呵呵,struct解析的程序是常驻内存的,所以他不用考虑这个问题