先把 XML 解析到一个数组中,然后再来获得需要所需数据。用 node 的位置来作 key, 如:$arr = array (
'/1' => '2004-11-04 **:**:**',
'/1/2' => '2004-11-03 **:**:**',
...
);既然你的 date 这么规则,用 asort() 应该就可以把你需要的时间按序排好了。如果不行,你可以在 parse XML 文档的时候把 date 转换成 timestamp, 然后 arsort() 肯定可以准确排序的。
'/1' => '2004-11-04 **:**:**',
'/1/2' => '2004-11-03 **:**:**',
...
);既然你的 date 这么规则,用 asort() 应该就可以把你需要的时间按序排好了。如果不行,你可以在 parse XML 文档的时候把 date 转换成 timestamp, 然后 arsort() 肯定可以准确排序的。
xml文件很大(有可能达4-5M)
你这样排序会不会很慢?
我觉得不要把它当做一个XML来处理
只当做是一个文本
通过正则表达式抓所有日期和它的name回来
然后再做排序完了后再从文本里依据name抓tree结点
但是还是用正则表达式抓用XML解析的话,
几K的文件都很慢
是在服务器段处理的吗?
步骤
1'生成dom类
2\进行xpath查询,返回nodeitem
3\循环判断要得到的东西另外你xml文件的格式有问题,都不是同一个级的tag,tag名称怎么都是tree啊?有这么设计的可能性吗?
<tree name="1" date="2004-11-04 **:**:**">
<tree name="2" date="##"/>
<tree name="3" date="*****">]
<tree……
……
</tree></tree>
不知道有没有这种可能:
把xml和网页用zlib压缩后发送到客户端,然后在客户端进行操作?
或者是有其他快一些的parser?