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 相关文章推荐
玩转图像函数库―常见图形操作
Sep 03 PHP
无数据库的详细域名查询程序PHP版(3)
Oct 09 PHP
php学习笔记 数组遍历实现代码
Jun 09 PHP
PHP中去除换行解决办法小结(PHP_EOL)
Nov 27 PHP
php实现自动获取生成文章主题关键词功能的深入分析
Jun 03 PHP
PHP OPP机制和模式简介(抽象类、接口和契约式编程)
Jun 09 PHP
30个php操作redis常用方法代码例子
Jul 05 PHP
学习php设计模式 php实现桥梁模式(bridge)
Dec 07 PHP
php 微信公众平台开发模式实现多客服的实例代码
Nov 07 PHP
详解php用curl调用接口方法,get和post两种方式
Jan 13 PHP
Laravel学习教程之request validation的编写
Oct 25 PHP
PHP实现两种排课方式
Jun 26 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
Zend Guard一些常见问题解答
2008/09/11 PHP
curl不使用文件存取cookie php使用curl获取cookie示例
2014/01/26 PHP
php生成数字字母的验证码图片
2015/07/14 PHP
javascript拖拽上传类库DropzoneJS使用方法
2013/12/05 Javascript
JS应用正则表达式转换大小写示例
2014/09/18 Javascript
PHP 数组current和next用法分享
2015/03/05 Javascript
JavaScript中的普通函数与构造函数比较
2015/04/07 Javascript
javascript等号运算符使用详解
2015/04/16 Javascript
js+div实现文字滚动和图片切换效果代码
2015/08/27 Javascript
jQuery图片轮播滚动切换代码分享
2020/04/20 Javascript
详解关于react-redux中的connect用法介绍及原理解析
2017/09/11 Javascript
JavaScript数组去重的多种方法(四种)
2017/09/19 Javascript
JavaScript实现修改伪类样式
2017/11/27 Javascript
vue-quill-editor富文本编辑器简单使用方法
2018/09/21 Javascript
vue实现压缩图片预览并上传功能(promise封装)
2019/01/10 Javascript
vue cli 3.x 项目部署到 github pages的方法
2019/04/17 Javascript
VUE 解决mode为history页面为空白的问题
2019/11/01 Javascript
使用vue-cli4.0快速搭建一个项目的方法步骤
2019/12/04 Javascript
JS表单验证插件之数据与逻辑分离操作实例分析【策略模式】
2020/05/01 Javascript
[01:02:25]2014 DOTA2华西杯精英邀请赛5 24 NewBee VS VG
2014/05/25 DOTA
[00:35]TI7不朽珍藏III——寒冰飞龙不朽展示
2017/07/15 DOTA
Python使用Pickle库实现读写序列操作示例
2018/06/15 Python
Python中的random.uniform()函数教程与实例解析
2019/03/02 Python
Python字符串内置函数功能与用法总结
2019/04/16 Python
解决python xx.py文件点击完之后一闪而过的问题
2019/06/24 Python
Python3之乱码\xe6\x97\xa0\xe6\xb3\x95处理方式
2020/05/11 Python
详解python tkinter包获取本地绝对路径(以获取图片并展示)
2020/09/04 Python
美国领先的医疗警报服务:Philips Lifeline
2018/03/12 全球购物
法国大使拉杆箱官网:DELSEY Paris
2018/03/20 全球购物
美国浴缸、水槽和水龙头购物网站:Vintage Tub & Bath
2019/11/05 全球购物
党的群众路线教育实践活动学习心得体会
2014/03/03 职场文书
中职三好学生事迹材料
2014/08/24 职场文书
会议简讯范文
2015/07/20 职场文书
Spring Cache和EhCache实现缓存管理方式
2021/06/15 Java/Android
美元符号 $
2022/02/17 杂记
CSS 鼠标点击拖拽效果的实现代码
2022/12/24 HTML / CSS