php 处理DOM利器–phpQuery

时间:2009-11-6     作者:smarteng     分类: PHP相关


JQuery是一个非常著名的JS框架,提供了对DOM文档的完整操作。这个文档处理利器现在终于有了PHP版,也就是说可以使用php操作HTML或者XML文档,遍历文档的节点,很轻松的取出,填充节点内容。或者简单来说,除了js的事件响应部分,其余的几乎都可以用php来实现。php对数据处理的能力显然要比JS强大很多,对不熟悉JS的同学来说,phpQuery是个非常强大的帮手。如果了解了phpQuery,那么就很容易理解其实phpQuery也可以取代一部分Smarty的功能。

我刚刚开始学习使用phpQuery,这应该算一篇学习笔记,我会努力将其向手册风格靠拢,不过不会做成中文手册,仍然会加入我在使用过程中遇到的问题以及解决方案。[break]

开始phpQuery
参考资料:phpQuery JQuery

phpQuery从编程思想到语言风格都是参照JQuery来做的,所以熟悉JQuery的人可以随时对照参考JQuery手册,方便理解。

phpQuery应用举例:

require(’phpQuery/phpQuery.php’);
$file = file_get_contents(”test_phpQuery.html”);
$dom = phpQuery::newDocument($file);  //初始化对象

echo pq(”head > title”)->text(); //输出文档title

如果是取得某个class的内容呢?


PHP代码
<?php  
  
//...include   
//...new phpQueryDocument  
  
$html->find('div.test eq(1)')->html();  
//表示取得div的class为test的,第一个匹配的元素中html内容  
pq这个全局函数类似于JQuery中的$()符号,用于执行请求,或者遍历DOM节点。
例子中的”head > title”就是一个选择请求,选择head标签下的title子标签。

pq(”li”); //选择所有文档中的li标签
foreach(pq(”li”) as $item)
pq($item);

遍历所有的”li”标签并取得内容。

在分析XML文档上,技术是我见过的最方便的…….
<?xml version=”1.0″ encoding=”UTF-8″ standalone=”yes” ?>
<channel>
<title>test title</title>
<geo>101.55</geo>
</channel>

pq(”channel > geo”); //输出101.55


呵呵,快去:http://code.google.com/p/phpquery/下载吧