XPath:XML'S Path,是一门在 XML 文档中快速查找(定位)信息的语言。XPath 用于在 XML 文档中通过元素和属性进行导航。
/ : 表示从根结点选取。(类似Linux命令)
// : 不论层次。
. : 选取当前结点。
.. : 选取当前结点的父节点。
@ : 选取属性。
xpath1.php:
<?php
$dom = new DOMDocument('1.0','utf-8');
$dom->load('rss.xml');
//实例化domxpath对象
$xpath = new DOMXPath($dom);
//书写路径表达式
$query = "//title"; // "//"不考虑层次。
$query = "/title"; //找不到,因为这种写法意味着从根节点title开始找,但它不是根节点
$query = "/bookstore/book/title"; //根节点bookstore下的book节点下的title节点
$query = "/bookstore//title"; //根节点bookstore下的所有title节点
$query = "//title"; // 所有title节点
$query = "//item/title"; // item下的title节点
$query = "/rss/channel/title"; //rss是根节点
$query = "/rss//title";
$res = $xpath->query($query); //通过query方法,返回DOMNodeList类型。
var_dump($res);
bookstore.xml:
<?xml version="1.0" encoding="utf-8" ?>
<bookstore>
<book category="COOKING">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
<book category="CHILDREN">
<title lang="en">Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
<book category="WEB">
<title lang="en">Learning XML</title>
<author>Erik T. Ray</author>
<year>2003</year>
<price>39.95</price>
</book>
</bookstore>
rss.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE rss SYSTEM 'rss.dtd'>
<rss version='2.0'>
<channel>
<title>PHP学院</title>
<link>http://php.baidu.cn</link>
<description>学PHP</description>
<language>zn-cn</language>
<item>
<title>标题1</title>
<link>http://php.baidu.cn/1.php</link>
<pubDate>2013-05-09 10:23:40</pubDate>
<description>正文1</description>
</item>
<item>
<title>标题2</title>
<link>http://php.baidu.cn/2.php</link>
<pubDate>2013-05-09 10:23:40</pubDate>
<description>正文2</description>
</item>
</channel>
</rss>