其实用find速度更快。按理比re要快不少。 只需要找到头与尾就可以。 只是因为find相对比较固定,没有re那么灵活,所以适应性差些。 经常要变更。比如你找一个class="id_xxx"这样的内容用find就很费劲。
你先做一个类。它能封装你查找到起点,终点。查找区间。然后内部使用find做查找。实现类似findall, search, subplace, like等功能。其实也不难。
只是如果做得太复杂了。效率可能受影响,那么你可以使用cython做成C语言的格式,效率就不受影响了。
$(data).find(“#page_nav a”).attr(“href”)表示从data节点开始向内查找id为page_nav下的a标签,data必须是一个可供选择器选择的表达式,例如标签名、ID、Class等。
因此你可以这样写:$(“#page_nav a”).attr(“href”)或$(“#page_nav”).find("a").attr(“href”)
如果还是不行,你可以用firebug或chrome的开发人员工具,打断点或用console.dir输入你选择的对象,所有问题一目了然。
//查找html文档中的超链接元素$a = $html->find('a')
//查找文档中第(N)个超链接,如果没有找到则返回空数组.
$a = $html->find('a', 0)
// 查找id为main的div元素
$main = $html->find('div[id=main]',0)
// 查找所有包含有id属性的div元素
$divs = $html->find('div[id]')
// 查找所有包含有id属性的元素
$divs = $html->find('[id]')