加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

xpath基本概念总结

发布时间:2020-12-16 08:26:48 所属栏目:百科 来源:网络整理
导读:?php /**当xml数据比较多的时候,查询起来比较慢,我们可以使用 xpath 或者是 xquery 无敌宇宙快速查询器****/步骤:1.创建 DOM 对象,导入 xml 文件$xml = new DOMDocument("1.0","utf-8");$xml-load('./book.xml');2.构造 xpath 查询器$xpath = new DOMXPA
<?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;


(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读