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 相关文章推荐
Windows下的PHP5.0安装配制详解
Sep 05 PHP
PHP中在数据库中保存Checkbox数据(2)
Oct 09 PHP
针对初学PHP者的疑难问答(1)
Oct 09 PHP
PHP生成网页快照 不用COM不用扩展.
Feb 11 PHP
PHP extract 将数组拆分成多个变量的函数
Jun 30 PHP
discuz免激活同步登入代码修改方法(discuz同步登录)
Dec 24 PHP
php轻松实现中英文混排字符串截取
May 28 PHP
PHP中auto_prepend_file与auto_append_file用法实例分析
Sep 22 PHP
PHP.ini安全配置检测工具pcc简单介绍
Jul 02 PHP
PHP实现的曲线统计图表示例
Nov 10 PHP
PHP操作路由器实现方法示例
Apr 27 PHP
PHP 枚举类型的管理与设计知识点总结
Feb 13 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
php中的一个中文字符串截取函数
2007/02/14 PHP
Zend Studio for Eclipse的java.lang.NullPointerException错误的解决方法
2008/12/06 PHP
基于asp+ajax和数据库驱动的二级联动菜单
2010/05/06 PHP
PHP Cookie的使用教程详解
2013/06/03 PHP
PHP CURL 多线程操作代码实例
2015/05/13 PHP
PHP应用跨时区功能的实现方法
2019/03/21 PHP
PHP Primary script unknown 解决方法总结
2019/08/22 PHP
Add Formatted Data to a Spreadsheet
2007/06/12 Javascript
JQERY limittext 插件0.2版(长内容限制显示)
2010/08/27 Javascript
JavaScript中函数表达式和函数声明及函数声明与函数表达式的不同
2015/11/15 Javascript
谈一谈js中的执行环境及作用域
2016/03/30 Javascript
JS新包管理工具yarn和npm的对比与使用入门
2016/12/09 Javascript
Angularjs的$http异步删除数据详解及实例
2017/07/27 Javascript
bootstrap fileinput实现文件上传功能
2017/08/23 Javascript
angular指令笔记ng-options的使用方法
2017/09/18 Javascript
微信小程序tabBar用法实例详解
2017/12/04 Javascript
vue实现文件上传功能
2018/08/13 Javascript
vue+axios实现文件下载及vue中使用axios的实例
2018/09/21 Javascript
微信小程序后端(java)开发流程的详细步骤
2019/11/13 Javascript
json_decode 索引为数字时自动排序问题解决方法
2020/03/28 Javascript
[05:49]DOTA2-DPC中国联赛 正赛 Elephant vs LBZS 选手采访
2021/03/11 DOTA
pygame学习笔记(6):完成一个简单的游戏
2015/04/15 Python
详解Python函数可变参数定义及其参数传递方式
2017/08/02 Python
Python使用asyncio包处理并发详解
2017/09/09 Python
详解python的ORM中Pony用法
2018/02/09 Python
深入浅析Python获取对象信息的函数type()、isinstance()、dir()
2018/09/17 Python
python opencv将表格图片按照表格框线分割和识别
2019/10/30 Python
Python和Anaconda和Pycharm安装教程图文详解
2020/02/04 Python
Keras设置以及获取权重的实现
2020/06/19 Python
详解移动端HTML5音频与视频问题及解决方案
2018/08/22 HTML / CSS
中国高端鲜花第一品牌:roseonly(一生只送一人)
2017/02/12 全球购物
欧洲领先的火车票和大巴票预订平台:Trainline
2018/12/26 全球购物
给同事的道歉信
2014/01/11 职场文书
公司外出活动方案
2014/08/14 职场文书
亮剑精神观后感
2015/06/05 职场文书
MySQL提升大量数据查询效率的优化神器
2022/07/07 MySQL