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 相关文章推荐
一个ORACLE分页程序,挺实用的.
Oct 09 PHP
PHP字符串函数系列之nl2br(),在字符串中的每个新行 (\n) 之前插入 HTML 换行符br
Nov 10 PHP
php动态绑定变量的用法
Jun 16 PHP
Smarty环境配置与使用入门教程
May 11 PHP
PHP 返回13位时间戳的实现代码
May 13 PHP
ThinkPHP5.0框架控制器继承基类和自定义类示例
May 25 PHP
php操作mongodb封装类与用法实例
Sep 01 PHP
Laravel框架实现多数据库连接操作详解
Jul 12 PHP
laravel框架中间件 except 和 only 的用法示例
Jul 12 PHP
laravel-admin select框默认选中的方法
Oct 03 PHP
thinkphp5 框架结合plupload实现图片批量上传功能示例
Apr 04 PHP
PHP正则之正向预查与反向预查讲解与实例
Apr 06 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
zf框架的Filter过滤器使用示例
2014/03/13 PHP
PHP回溯法解决0-1背包问题实例分析
2015/03/23 PHP
PHP使用mkdir创建多级目录的方法
2015/12/22 PHP
CI映射(加载)数据到view层的方法
2016/03/28 PHP
深入浅析PHP无限极分类的案例教程
2016/05/09 PHP
php实现每日签到功能
2018/11/29 PHP
JQuery打造PHP的AJAX表单提交实例
2009/11/03 Javascript
javascript dom 基本操作小结
2010/04/11 Javascript
DOM和XMLHttpRequest对象的属性和方法整理
2012/01/04 Javascript
js模仿jquery的写法示例代码
2013/06/16 Javascript
JavaScript禁止页面操作的示例代码
2013/12/17 Javascript
jQuery 文本框得失焦点的简单实例
2014/02/19 Javascript
js的参数有长度限制吗?发现不能超过2083个字符
2014/04/20 Javascript
javascript将异步校验表单改写为同步表单
2015/01/27 Javascript
jQuery 3.0 的 setter和getter 模式详解
2016/07/11 Javascript
原生js FileReader对象实现图片上传本地预览效果
2020/03/27 Javascript
vuejs使用FormData实现ajax上传图片文件
2017/08/08 Javascript
对于Javascript 执行上下文的全面了解
2017/09/05 Javascript
JS中使用textPath实现线条上的文字
2017/12/25 Javascript
Vue循环组件加validate多表单验证的实例
2018/09/18 Javascript
微信小程序实现登录遮罩效果
2018/11/01 Javascript
微信公众平台获取access_token的方法步骤
2019/03/29 Javascript
深入探索VueJS Scoped CSS 实现原理
2019/09/23 Javascript
在react中使用vue的状态管理的方法示例
2020/05/02 Javascript
详解vue父子组件状态同步的最佳方式
2020/09/10 Javascript
Python 内置函数memoryview(obj)的具体用法
2017/11/23 Python
python实现画一颗树和一片森林
2018/06/25 Python
Python中读取文件名中的数字的实例详解
2020/12/25 Python
Python之Sklearn使用入门教程
2021/02/19 Python
Opencv 图片的OCR识别的实战示例
2021/03/02 Python
一款纯css3实现的颜色渐变按钮的代码教程
2014/11/12 HTML / CSS
CSS3制作Dropdown下拉菜单的方法
2015/07/18 HTML / CSS
CSS3的常见transformation图形变化用法小结
2016/05/13 HTML / CSS
美国宠物用品网站:Value Pet Supplies
2018/03/17 全球购物
马德里竞技官方网上商店:Atletico Madrid Shop
2019/03/31 全球购物
高效课堂教学反思
2016/02/24 职场文书