XPATH是通过xml文档路径来解析xml的
<?xml version="1.0" encoding="UTF-8"?>
<root>
<student id="1">
<name>yyj1</name>
<age>21</age>
<sex>男</sex>
</student>
<student id="2">
<name>yyj2</name>
<age>21</age>
<sex>男2</sex>
</student>
<student id="3">
<name>yyj3</name>
<age>50</age>
<sex>男3</sex>
<sex2>男3</sex2>
</student>
<student id="4">
<name>yyj4</name>
<age>31</age>
<sex>男3</sex>
</student>
<a>
<name>a</name>
</a>
<b>
<name>b</name>
</b>
</root>
<?php
//构造XPATH查询器
$xml=new DOMDocument('1.0','utf-8');
$xml->load('./2015-12-22.xml');
$xpath=new DOMXPath($xml);
$sql='/root/student/name';//查询指定路径的节点列表
$rs=$xpath->query($sql);
echo $rs->item(0)->nodeValue.'<br /><br />';//查询指定路径的节点列表的第一个节点内容
$sql='/root/student[last()]/name';//查询第二个学生的name
$rs=$xpath->query($sql);
echo $rs->item(0)->nodeValue.'<br /><br />';//查询该路径下的节点内容
$sql='/root/student[age>30]/name';//查询student中age大于30的学生
$rs=$xpath->query($sql);
echo $rs->item(0)->nodeValue.'<br /><br />';//查询该路径下的节点内容
$sql='/root/student[name="yyj4"]/age';//查询student中name==yyj4的age
$rs=$xpath->query($sql);
echo $rs->item(0)->nodeValue.'<br /><br />';//查询该路径下的节点内容
//不分层次查询所有name
$sql='//name';//查询root下的所有name
foreach ($xpath->query($sql) as $v){
echo $v->nodeValue.'<br />';
}
echo '<br />';
//不分层次查询指定name
$sql='//name';
echo $xpath->query($sql)->item(0)->nodeValue.'<br />';
?>
yyj1
yyj4
yyj3
31
yyj1
yyj2
yyj3
yyj4
a
b
yyj1
联系客服