前端之家收集整理的这篇文章主要介绍了
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;
原文链接:https://www.f2er.com/xml/294652.html