xpath基本概念总结

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

猜你在找的XML相关文章