XPath的使用

XPath即为XML路径语言,它可以从XML文档的树形结构中找出某节点的功能,它可以按照路径表达式来查找所需要的节点信息。

04.xml文件:

这里写图片描述

例子1:找出book节点下的书籍名称

<?php
/**
 * XPath的使用
 * @author webbc
 */
header('Content-type:text/html;charset=utf-8');//确定编码
$dom = new DomDocument('1.0','utf-8');//创建dom对象
$dom->load('04.xml');//加载xml文件
$xpath = new DomXPath($dom);//创建xpath路径对象
$sql = '/bookstore/book/title';//定义路径表达式,含义是从根节点下的bookstore节点下的book节点下找出title节点
$list = $xpath->query($sql);//查找操作
//遍历,输出节点内容
foreach ($list as $k => $v) {
    echo $v->nodeValue."<br/>";
}   
?>

结果:

这里写图片描述


例子2:找出价格大于50元的书籍名称

代码:

<?php
/**
 * XPath的使用
 * @author webbc
 */
header('Content-type:text/html;charset=utf-8');
$dom = new DomDocument('1.0','utf-8');
$dom->load('04.xml');
$xpath = new DomXPath($dom);
$sql = '/bookstore/book[price>50]/title';//路径表达式,表示价格大于50元的书籍的title节点
$list = $xpath->query($sql);
foreach ($list as $k => $v) {
    echo $v->nodeValue."<br/>";
}   
?>

结果:

这里写图片描述


例子3:找出所有title节点,包括a标签下的title节点

代码:

<?php
/**
 * XPath的使用
 * @author webbc
 */
header('Content-type:text/html;charset=utf-8');
$dom = new DomDocument('1.0','utf-8');
$dom->load('04.xml');
$xpath = new DomXPath($dom);
$sql = '//title';//表示选取所有title元素,而不管它们在文档中的位置
$list = $xpath->query($sql);
foreach ($list as $k => $v) {
    echo $v->nodeValue."<br/>";
}
?>

结果:

这里写图片描述


例子4:找出第二本书籍的名称

代码:

<?php
/**
 * XPath的使用
 * @author webbc
 */
header('Content-type:text/html;charset=utf-8');
$dom = new DomDocument('1.0','utf-8');
$dom->load('04.xml');
$xpath = new DomXPath($dom);
$sql = '/bookstore/book[2]/title';//找出第二本书籍的名称
$list = $xpath->query($sql);
foreach ($list as $k => $v) {
    echo $v->nodeValue."<br/>";
}
?>

结果:

这里写图片描述


例子5:找出书籍名称为“天龙八部”的价格
代码:

<?php
/**
 * XPath的使用
 * @author webbc
 */
header('Content-type:text/html;charset=utf-8');
$dom = new DomDocument('1.0','utf-8');
$dom->load('04.xml');
$xpath = new DomXPath($dom);
$sql = '/bookstore/book[title="天龙八部"]/price';//找出书籍名称为“天龙八部”的价格
$list = $xpath->query($sql);
foreach ($list as $k => $v) {
    echo $v->nodeValue."<br/>";
}
?>

结果:
这里写图片描述

原文地址:https://www.cnblogs.com/cnsec/p/13407067.html