打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
php使用XPATH解析xml

XPATH是通过xml文档路径来解析xml的

首先创建1.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>

然后创建1.php

<?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


本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
保证你现在和未来不失业的十种关键技术
tomcat5.5中c3p0配置
Windows8WinRT XML数据API
XML复习题
ASP购物车代码超级简单
XML DOM
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服