前端之家收集整理的这篇文章主要介绍了
xpath基本概念总结,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
- <?PHP
- /**
-
- 当xml数据比较多的时候,查询起来比较慢,
- 我们可以使用 xpath 或者是 xquery 无敌宇宙快速查询器
-
- ****/
- 步骤:
- 1.创建 DOM 对象,导入 xml 文件
- $xml = new DOMDocument("1.0","utf-8");
- $xml->load('./book.xml');
-
- 2.构造 xpath 查询器
- $xpath = new DOMXPATH($xml);
-
- 3.使用==>主要看怎么走路
- $sql = '/bookstore/book[price>30]/title[2]';
- 路径是:查找bookstore下的 price>30 底下的 第二个 title 节点
-
- $rs = $xpath->query($sql);
- print_r($ra->item(0)->nodeValue); //查看该节点下的内容
-
-
- 4.另一种查法,并不严格的路径 使用 //
- /a/b ==> 表示 a b 是父子关系 /a//b ==> 表示 a 是 b 的祖先,忽略了层次
- $sql = '/bookstore//title';
- 路径是:查找bookstore下所有的title节点
- $rs = $xpath->query($sql);
- echo $rs->item(0)->nodeValue;
-
- 5.显示全部title节点
- //foreach 可以用于数组和对象 $rs是Object(DOMNodelist)
- foreach ($rs as $v) {
- echo $v->nodeValue;
- }
-
- 6.利用 xpath 查询html的内容
- 做小偷程序的时候,不用非要正则匹配,使用 DOM 标准的 xpath 也可以
-
- //创建DOM,引入html文件
- $html = new DOMDocument("1.0","utf-8");
- $html->loadhtmlfile('xmldic.html');
-
- //创建xpath构造器
- $xpath = new DOMXPATH($html);
-
- //执行查找内容
- $sql = '/html/body/h2';
- echo $xpath->query($sql)->item(0)->nodeValue;
-
- //属性之前需要加@
- $sql = "//div[@id='123']";
- echo $xpath->query($sql)->item(0)->nodeValue;
-
-
- //分析第2个div下的, p下的, 第二个span的内容
- $sql = '//div/p/span[2]';
- echo $xpath->query($sql)->item(0)->nodeValue;
-
-