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 相关文章推荐
创建数据库php代码 用PHP写出自己的BLOG系统
Apr 12 PHP
rephactor 优秀的PHP的重构工具
Jun 09 PHP
php中使用parse_url()对网址进行解析的实现代码(parse_url详解)
Jan 03 PHP
php和js如何通过json互相传递数据相关问题探讨
Feb 26 PHP
PHP中is_file不能替代file_exists的理由
Mar 04 PHP
php三元运算符知识汇总
Jul 02 PHP
给PHP开发者的编程指南 第一部分降低复杂程度
Jan 18 PHP
Zend Framework教程之Autoloading用法详解
Mar 08 PHP
php项目开发中用到的快速排序算法分析
Jun 25 PHP
php中通用的excel导出方法实例
Dec 30 PHP
PHP实现的装箱算法示例
Jun 23 PHP
如何理解PHP核心特性命名空间
May 28 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
Windows7下PHP开发环境安装配置图文方法
2010/05/20 PHP
php小经验:解析preg_match与preg_match_all 函数
2013/06/29 PHP
7个鲜为人知却非常实用的PHP函数
2015/07/01 PHP
thinkPHP交易详情查询功能详解
2016/12/02 PHP
PHP+ajax实现获取新闻数据简单示例
2018/05/08 PHP
PHP实现微信退款功能
2018/10/02 PHP
php适配器模式简单应用示例
2019/10/23 PHP
IE浏览器PNG图片透明效果代码
2008/09/02 Javascript
jquery 查找新建元素代码
2010/07/06 Javascript
有关DOM元素与事件的3个谜题
2010/11/11 Javascript
关于JavaScript中name的意义冲突示例介绍
2014/05/29 Javascript
使用jquery实现仿百度自动补全特效
2015/07/23 Javascript
js实现随屏幕滚动的带缓冲效果的右下角广告代码
2015/09/04 Javascript
javascript类型系统 Window对象学习笔记
2016/01/07 Javascript
深入剖析JavaScript中的函数currying柯里化
2016/04/29 Javascript
jQuery图片轮播实现并封装(一)
2016/12/03 Javascript
微信小程序地图(map)组件点击(tap)获取经纬度的方法
2019/01/10 Javascript
vue+vuex+json-seiver实现数据展示+分页功能
2019/04/11 Javascript
webpack3.0升级4.0的方法步骤
2020/04/02 Javascript
栈和队列数据结构的基本概念及其相关的Python实现
2015/08/24 Python
Python列表常见操作详解(获取,增加,删除,修改,排序等)
2019/02/18 Python
几款主流好用的富文本编辑器(所见即所得常用编辑器)介绍
2021/03/17 Javascript
Adobe Html5 Extension开发初体验图文教程
2017/11/14 HTML / CSS
详解html5 canvas 微信海报分享(个人爬坑)
2018/01/12 HTML / CSS
德国箱包网上商店:koffer24.de
2016/07/27 全球购物
金士达面试非笔试
2012/03/14 面试题
初三学习决心书
2014/03/11 职场文书
《郑和远航》教学反思
2014/04/16 职场文书
文明生主要事迹
2014/05/25 职场文书
教室布置标语
2014/06/26 职场文书
舞蹈兴趣小组活动总结
2014/07/07 职场文书
会议新闻稿
2015/07/17 职场文书
2016党员学习心得体会范文
2016/01/23 职场文书
2019年怎样写好导游词?
2019/07/02 职场文书
一次Mysql update sql不当引起的生产故障记录
2022/04/01 MySQL
一文了解MYSQL三大范式和表约束
2022/04/03 MySQL