PHP基于SimpleXML生成和解析xml的方法示例


Posted in PHP onJuly 17, 2017

本文实例讲述了PHP基于SimpleXML生成和解析xml的方法。分享给大家供大家参考,具体如下:

xml就不多解释了,php也提供了操作xml的方法,php操作xml可以有多种方式如domdocment,simplexml,xmlwriter等其中最简单的应该是simplexml了,这次就来说说simplexml怎么读取和解析xml文件或字符串

1. 生成xml字符串和文件

<?php
 header("Content-type: text/html; charset=utf-8");
 $xml=new SimpleXMLElement('<?xml version="1.0" encoding="utf-8"?><UsersInfo />');
 $item=$xml->addchild("item");
 $item->addchild("name","冯绍峰");
 $item->addchild("age","30");
 $item2=$xml->addchild("item");
 $item2->addchild("name","潘玮柏");
 $item2->addchild("age","29");
 $item2->addAttribute("id","02");
 header("Content-type: text/xml");
 echo $xml->asXml();
 $xml->asXml("student.xml");
?>

生成xml最重要的就是addchild,addAttribute,asXml三个方法,如果只是单纯生成xml文件的话那个header可以不要,下面是浏览器的显示结果

 PHP基于SimpleXML生成和解析xml的方法示例

是不是很简单呢

2. simplexml解析xml文件或字符串

<?php
 header("Content-type: text/html; charset=utf-8");
 $xml=simplexml_load_file("UserInfo.xml");
 //通过children取得根节点下面的子项
 for($i=0;$i<count($xml->children());$i++){
   foreach ($xml->children()[$i] as $key => $value ) {
    echo "$key:$value"."<br/>";
   }
 }
?>

上面的方法适合解析xml文件,如果是xml字符串就把simplexml_load_file改为simplexml_load_string就可以了,children用于取得根节点或者子节点,取得的节点是一个数组直接遍历必要的时候加上过滤条件就可以了,下面是解析的结果

 PHP基于SimpleXML生成和解析xml的方法示例

顺便把我的xml文件贴出来

<?xml version="1.0" encoding="UTF-8"?>
<UsersInfo>
 <item>
   <name>潘玮柏</name>
   <address>上海市浦东新区</address>
   <song>快乐崇拜</song>
 </item>
 <item>
   <name>蔡依林</name>
   <address>上海市徐汇区</address>
   <song>独占神话</song>
 </item>
</UsersInfo>

总的说来操作真的太简洁了。

PHP 相关文章推荐
Linux下CoreSeek及PHP扩展模块的安装
Sep 23 PHP
PHP中模拟处理HTTP PUT请求的例子
Jul 22 PHP
PHP使用flock实现文件加锁的方法
Jul 01 PHP
详解thinkphp实现excel数据的导入导出(附完整案例)
Dec 29 PHP
PHP基于XMLWriter操作xml的方法分析
Jul 17 PHP
PHP7下协程的实现方法详解
Dec 17 PHP
PHP+Ajax实现的博客文章添加类别功能示例
Mar 29 PHP
PHP实现打包zip并下载功能
Jun 12 PHP
PHP格式化显示时间date()函数代码
Oct 03 PHP
Laravel中10个有用的用法小结
May 06 PHP
Laravel 类和接口注入相关的代码
Oct 15 PHP
PHP+Mysql分布式事务与解决方案深入理解
Feb 27 PHP
PHP实现限制IP访问及提交次数的方法详解
Jul 17 #PHP
PHP提取字符串中的手机号正则表达式怎么写
Jul 17 #PHP
老生常谈PHP中的数据结构:DS扩展
Jul 17 #PHP
PHPstorm快捷键(分享)
Jul 17 #PHP
利用PHP_XLSXWriter代替PHPExcel的方法示例
Jul 16 #PHP
PHP常用操作类之通信数据封装类的实现
Jul 16 #PHP
Laravel网站打开速度优化的方法汇总
Jul 16 #PHP
You might like
GD输出汉字的函数的分析
2006/10/09 PHP
php htmlentities和htmlspecialchars 的区别
2008/08/18 PHP
PHP 面向对象程序设计(oop)学习笔记(一) - 抽象类、对象接口、instanceof 和契约式编程
2014/06/12 PHP
一款简单实用的php操作mysql数据库类
2014/12/08 PHP
C# WinForm中实现快捷键自定义设置实例
2015/01/23 PHP
Yii2简单实现多语言配置的方法
2016/07/23 PHP
PHP命名空间与自动加载类详解
2018/09/04 PHP
innerHTML 和 getElementsByName 在IE下面的bug 的解决
2010/04/09 Javascript
jquery使用ColorBox弹出图片组浏览层实例演示
2013/03/14 Javascript
javascript中普通函数的使用介绍
2013/12/19 Javascript
深入理解JavaScript系列(19):求值策略(Evaluation strategy)详解
2015/03/05 Javascript
Angular 输入框实现自定义验证功能
2017/02/19 Javascript
详解angular中的作用域及继承
2017/05/31 Javascript
layer弹出层自定义提交取消按钮的例子
2019/09/10 Javascript
JS使用正则表达式判断输入框失去焦点事件
2019/10/16 Javascript
使用js获取身份证年龄的示例代码
2020/12/11 Javascript
[01:55]TI9显影之尘系列 - Evil Geniuses
2019/08/22 DOTA
[45:17]DOTA2-DPC中国联赛定级赛 Phoenix vs DLG BO3第三场 1月9日
2021/03/11 DOTA
Python设置Socket代理及实现远程摄像头控制的例子
2015/11/13 Python
python实现log日志的示例代码
2018/04/28 Python
详解python3中tkinter知识点
2018/06/21 Python
Python 3.x 判断 dict 是否包含某键值的实例讲解
2018/07/06 Python
Tensorflow实现神经网络拟合线性回归
2019/07/19 Python
python 公共方法汇总解析
2019/09/16 Python
python retrying模块的使用方法详解
2019/09/25 Python
css3新增颜色表示方式分享
2014/04/15 HTML / CSS
法拉利英国精品店:Ferraris Boutique UK
2019/07/20 全球购物
用C#语言写出与SQLSERVER访问时的具体过程
2013/04/16 面试题
AJAX的全称是什么
2012/11/06 面试题
教师推荐信范文
2013/11/24 职场文书
信访工作者先进事迹
2014/01/17 职场文书
售后服务承诺书
2014/03/26 职场文书
买卖车协议书
2014/04/21 职场文书
销售人员工作自我评价
2014/09/21 职场文书
学校节水倡议书
2015/04/29 职场文书
python 中[0]*2与0*2的区别说明
2021/05/10 Python