您的位置:首页 > 其它

xpath查询xml

2016-06-28 17:11 225 查看
XPATH是专门用来查询xml语言,查询xml速度非常快

下面是XPATH的具体使用:

还是以book.xml为例(看上一篇):

首先构造一个XPATH查询器:

$xml = new DOMDocument('1.0','utf-8');
$xml->load('book.xml');
$xpath = new DOMXPATH($xml);

接下来xpath的路径表达式了,

注意:xpath是从根节点到某个节点经过的路径,具体查询如下:

<span style="background-color: rgb(102, 255, 255);">$sql = '/bookstore/book/title';</span>
$rs = $xpath->query($sql);
// print_r($rs); // DOMNodeList Object ( [length] => 4 )

echo $rs->item(1)->nodeValue,'<br />'; // 侠客行


我们还可以查询是哪本书下的title节点,注意看路径表达式的变化:

// 查询bookstores下面的第2本书下面的title节点
<span style="background-color: rgb(102, 255, 255);">$sql = '/bookstore/book[2]/title';</span>
$rs = $xpath->query($sql);
echo $rs->item(0)->nodeValue,'<br />';


还可以通过价格的大小来查询对应的title节点,看路径表达式

// 查询bookstores下面的book节点并且价格>40元
<span style="background-color: rgb(102, 255, 255);">$sql = '/bookstore/book[price>40]/title';</span>
$rs = $xpath->query($sql);
echo $rs->item(0)->nodeValue,'<br />';


另外,还能查询指定title的对应价格,看路径表达式:

// /bookstore/下面的book,且title=='侠客行'的书的价格
<span style="background-color: rgb(102, 255, 255);">$sql = '/bookstore/book[title="侠客行"]/price';</span>
$rs = $xpath->query($sql);
echo $rs->item(0)->nodeValue;


更多语法,还是那句话,看文档---->【在这呢

OK,看到这,是不是觉得XPATH很方便!!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: