PHP使用xpath解析XML的方法详解


Posted in PHP onMay 20, 2017

本文实例讲述了PHP使用xpath解析XML的方法。分享给大家供大家参考,具体如下:

XML文件在PHP网站开发的轻量级应用中使用非常广泛,而PHP解析和读取XML文件的方式有很多种,比如JS DOM、SimpleXml、Xpath等方式解析XML文件,今天来讲讲在PHP中使用Xpath解析XML的实例,同时通过Xpath解析XML的实例来介绍部分基础的Xpath语法。

Xpath是什么?

Xapth主要用来在XML文档中查询信息的工具,通过使用路径表达式可以解析XML文件,读取XML文件中的数据。

PHP解析XML推荐教程:PHP4和PHP5版本下解析XML文档的操作方法

需要PHP解析的XML文档:

<?xmlversion="1.0"encoding="gbk"?>
<LeapsoulXML> 
<LeapsoulInfo> 
<name>PHP网站开发-PHP教程-3water.com</name>
  <website>https://3water.com</website>
 </LeapsoulInfo>
 <LeapsoulInfo> 
<name>
   <keywords>
   <keywordkeyid='1'>PHP网站开发</keyword>
   <keywordkeyid='2'>PHP教程</keyword>
   <keywordkeyid='3'>PHP</keyword>
   </keywords>
   <seo>SEO</seo>
  </name>
 </LeapsoulInfo>
 <WebInfo> 
<name>PHP网站开发</name>
  <website>https://3water.com</website>
 </WebInfo>
</LeapsoulXML>

Xpath语法教程

/表示从XML文件中的根节点开始解析
//表示在XML文件中匹配已选择的当前节点,且不考虑其位置关系(类似于SQL中模糊查询)
. 表示选取当前节点
..表示选取当前节点的父节点
@表示匹配具体的节点或属性

PHP解析XML实例第一步

$xml = simplexml_load_file('leapsoulcn.xml');

说明:使用PHP SimpleXML载入需要解析的XML文档,SimpleXML默认PHP5支持。

实例一:

foreach($xml->xpath('LeapsoulInfo')as $value) { 
  print_r($value);
}

说明:在这个Xpath实例中通过Xpath查询指定节点,以数组形式返回其所有的子节点,并通过PHP的print_r函数打印出最终的数组结构。

实例二:

foreach($xml->xpath('LeapsoulInfo/name')as $value) { 
  print_r($value);
}

说明:在这个Xpath实例中通过Xpath路径表达式的方式指定需要Xapth查询的某个特定子节点,以数组形式返回这个子节点的元素。

实例三:

foreach($xml->xpath('//name')as $value) { 
  print_r($value);
}

说明:在这个Xpath实例中通过使用//表示使用Xpath查询XML文件中所有name节点的元素,与上一个Xpath实例的区别在于name没有位置关系。

实例四:

foreach($xml->xpath('LeapsoulInfo//name')as $value) { 
  print_r($value);
}

说明:PHP解析XML文件中指定节点下的某个子节点,以数组形式返回其所有子节点,忽略指定的这个子节点在LeapsoulInfoXML中的位置关系。

实例五:

foreach($xml->xpath("//name/keywords/keyword[@keyid='1']")as $value) { 
  print_r($value);
}

说明:在需要PHP解析的XML文件中通过Xpath查找keyid=1的元素,以数组形式返回。

OK,上述几个PHP Xpath实例教程是PHP解析XML文件最基础的方法,通过合理使用Xpath路径表达式可以进行复杂的XML查询和解析,使用起来感觉和SQL一样方便。

PHP 相关文章推荐
某大型网络公司应聘时的笔试题目附答案
Mar 27 PHP
PHP中防止SQL注入攻击和XSS攻击的两个简单方法
Apr 15 PHP
PHP 显示客户端IP与服务器IP的代码
Oct 12 PHP
发款php蜘蛛统计插件只要有mysql就可用
Oct 12 PHP
php错误级别的设置方法
Jun 17 PHP
浅析HTTP消息头网页缓存控制以及header常用指令介绍
Jun 28 PHP
分享最受欢迎的5款PHP框架
Nov 27 PHP
php上传文件常见问题总结
Feb 03 PHP
thinkPHP导出csv文件及用表格输出excel的方法
Dec 30 PHP
使用一个for循环将N*N的二维数组的所有值置1实现方法
May 29 PHP
php json转换相关知识(小结)
Dec 21 PHP
PHP registerXPathNamespace()函数讲解
Feb 03 PHP
PHP CodeIgniter分页实例及多条件查询解决方案(推荐)
May 20 #PHP
PHP4和PHP5版本下解析XML文档的操作方法实例分析
May 20 #PHP
PHP实现对xml的增删改查操作案例分析
May 19 #PHP
PHP实现对xml进行简单的增删改查(CRUD)操作示例
May 19 #PHP
php简单处理XML数据的方法示例
May 19 #PHP
PHP jQuery+Ajax结合写批量删除功能
May 19 #PHP
php对xml文件的增删改查操作实现方法分析
May 19 #PHP
You might like
PHP编程中八种常见的文件操作方式
2006/11/19 PHP
一些PHP写的小东西
2006/12/06 PHP
Linux Apache PHP Oracle 安装配置(具体操作步骤)
2013/06/17 PHP
使用 PHPStorm 开发 Laravel
2015/03/24 PHP
php+jQuery+Ajax实现点赞效果的方法(附源码下载)
2020/07/21 PHP
功能强大的php分页函数
2016/07/20 PHP
PHP实现SMTP邮件的发送实例
2018/09/27 PHP
php输出形式实例整理
2020/05/05 PHP
JS预览图像将本地图片显示到浏览器上
2013/08/25 Javascript
动态添加option及createElement使用示例
2014/01/26 Javascript
使用FlexiGrid实现Extjs表格效果方法分享
2014/12/16 Javascript
浅谈DOCTYPE对$(window).height()取值的影响
2016/07/21 Javascript
解析预加载显示图片艺术
2016/12/05 Javascript
使用jsonp实现跨域获取数据实例讲解
2016/12/25 Javascript
微信小程序 引用其他js文件实现代码
2017/02/22 Javascript
vue-router相关基础知识及工作原理
2018/03/16 Javascript
JS实现DOM节点插入操作之子节点与兄弟节点插入操作示例
2018/07/30 Javascript
JS数组实现分类统计实例代码
2018/09/30 Javascript
JS正则表达式封装与使用操作示例
2019/05/15 Javascript
公众号SVG动画交互实战代码
2020/05/31 Javascript
Ant Design的可编辑Tree的实现操作
2020/10/31 Javascript
pygame游戏之旅 载入小车图片、更新窗口
2018/11/20 Python
python 实现将txt文件多行合并为一行并将中间的空格去掉方法
2018/12/20 Python
Python面向对象总结及类与正则表达式详解
2019/04/18 Python
CSS3中几个新增加的盒模型属性使用教程
2016/03/01 HTML / CSS
Jabra捷波朗美国官网:用于办公、车载和运动的无线蓝牙耳麦
2017/02/01 全球购物
销售员岗位职责范本
2014/02/03 职场文书
一年级语文教学反思
2014/02/13 职场文书
竞选劳动委员演讲稿
2014/04/28 职场文书
院党委组织查摆问题对照检查材料思想汇报2014
2014/10/08 职场文书
实训报告范文大全
2014/11/04 职场文书
召开会议通知范文
2015/04/15 职场文书
离职信范文
2015/06/23 职场文书
基层医务人员三严三实心得体会
2016/01/05 职场文书
前端JavaScript大管家 package.json
2021/11/02 Javascript
Python 读取千万级数据自动写入 MySQL 数据库
2022/06/28 Python