XPath介绍与使用

现在主要进行PHP方面的开发. 开发过程中发现产品代码中, 很多xml文件的解析都是先创建DOM对象读取文件, 然后进行对象的遍历, 填充数组, 最后对数据进行操作。

来公司前做Java Web, 对PHP不是很了解, 所以想着有没有能省事点的方法, 不用每次都做那么多工作才能得到想要的数据. 问了下度娘后, 发现了XPath, 语法类似sql形式, 简单易懂, 上手难度不高, 下面直接上真相(多图) 。

XPath:我很强

xpath1

    1. SimpleXML和DOM均支持XPath
    2. XPath可以返回SimpleXML对象的数组
    3. 返回结果可以不遍历直接使用
    4. XPath支持类似sql的写法
    5. 语法简单易上手……
    6. 编不下去了, 更多详情可参考w3school, 此处省略500字

通俗易懂好上手

xpath2

有图有真相

(路径里的eat不是重点…不要在意细节)

xpath3

生产力

入职的产品任务实践是用公司的web框架(PHP), 做一套具备增删查改/分页/模糊查询/国际化功能的程序. 整套程序的关键点是分页, 因为设备现有的分页模块处理大数据量的xml文件时会比较慢, 参考在学校做JavaWeb的分页思路, 就重新做了一套分页.

利用XPath的谓词表达式和函数, 可以对数据量的选取进行限制, 实现每次只加载所需位置的数据元素. 同时, 对字符进行模糊匹配, 实现xml文件的全局查找.

实测新的分页方式在首次加载数据时, 大幅缩小了等待时间, 下面是真相.

  • 原分页, 首次等待时间

 

xpath4

  • 新分页, 首次等待时间

 

xpath5

笔者的测试环境性能比较低(atom 1.8G), 高性能设备的数据可能不一样, 但是从原理上讲肯定会有提升.

XPath还有很多好玩的函数, 在这就不一一列举了。

如果您需要了解更多内容,可以
加入QQ群:570982169、486207500
直接询问:010-68438880-8669

Spread the word. Share this post!

Meet The Author

Leave Comment