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代码
Aug 08 PHP
解析php中获取系统信息的方法
Jun 25 PHP
PHP超牛逼无限极分类生成树方法
May 11 PHP
PHP Opcache安装和配置方法介绍
May 28 PHP
PHP中file_exists使用中遇到的问题小结
Apr 05 PHP
php微信开发自定义菜单
Aug 27 PHP
php实现将base64格式图片保存在指定目录的方法
Oct 13 PHP
浅谈php fopen下载远程文件的函数
Nov 18 PHP
使用Zttp简化Guzzle 调用
Jul 02 PHP
PHP实现绘制二叉树图形显示功能详解【包括二叉搜索树、平衡树及红黑树】
Nov 16 PHP
php接口实现拖拽排序功能
Apr 23 PHP
laravel 解决Eloquent ORM的save方法无法插入数据的问题
Oct 21 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
在线增减.htpasswd内的用户
2006/10/09 PHP
php学习笔记 php中面向对象三大特性之一[封装性]的应用
2011/06/13 PHP
PHP中的session安全吗?
2016/01/22 PHP
js限制文本框输入长度两种限制方式(长度、字节数)
2012/12/19 Javascript
基于jquery实现点击左右按钮图片横向滚动
2013/04/11 Javascript
了解了这些才能开始发挥jQuery的威力
2013/10/10 Javascript
javascript生成随机颜色示例代码
2014/05/05 Javascript
JS实现控制表格行文本对齐的方法
2015/03/30 Javascript
javascript实现的闭包简单实例
2015/07/17 Javascript
在JSP中如何实现MD5加密的方法
2016/11/02 Javascript
JS查找字符串中出现最多的字符及个数统计
2017/02/04 Javascript
vuejs使用$emit和$on进行组件之间的传值的示例
2017/10/04 Javascript
React如何利用相对于根目录进行引用组件详解
2017/10/09 Javascript
详解给Vue2路由导航钩子和axios拦截器做个封装
2018/04/10 Javascript
微信小程序实现弹出菜单功能
2018/06/12 Javascript
深入理解Vue 组件之间传值
2018/08/16 Javascript
js实现开关灯效果
2020/03/30 Javascript
python获取mp3文件信息的方法
2015/06/15 Python
python 安装virtualenv和virtualenvwrapper的方法
2017/01/13 Python
利用python爬取散文网的文章实例教程
2017/06/18 Python
浅谈python中的占位符
2017/11/09 Python
python http接口自动化脚本详解
2018/01/02 Python
便捷提取python导入包的属性方法
2018/10/15 Python
Python实现平行坐标图的两种方法小结
2019/07/04 Python
django之静态文件 django 2.0 在网页中显示图片的例子
2019/07/28 Python
python 并发下载器实现方法示例
2019/11/22 Python
解决tensorflow添加ptb库的问题
2020/02/10 Python
Java byte数组操纵方式代码实例解析
2020/07/22 Python
python安装sklearn模块的方法详解
2020/11/28 Python
canvas像素画板的实现代码
2018/11/21 HTML / CSS
HTML5的hidden属性兼容老浏览器的方法
2014/04/23 HTML / CSS
益达广告词
2014/03/14 职场文书
关于十八大的演讲稿
2014/09/15 职场文书
群众路线自查报告及整改措施
2014/11/04 职场文书
公司员工管理制度
2015/08/04 职场文书
口袋妖怪冰系十大最强精灵,几何雪花排第七,第六类似北极熊
2022/03/18 日漫