惊人的互相转换,还是因为麻烦。程序很反感麻烦猿

1 阵转xml

<?php
/*
一维数组转xml
思路:
循环数组每一个单元,添加到xml文档节点中去
*/ /*
$arr = array(
'name'=> '丁三',
'age'=>29
); function arr2xml($arr) {
$simxml = new simpleXMLElement('<?xml version="1.0" encoding="utf-8"?><root></root>');
// simpleXMLElement对象怎样添加子节点? foreach($arr as $k=>$v) {
$simxml->addChild($k,$v);
} return $simxml->saveXML();
}
*/ $arr = array(
'name'=> '丁三',
'age'=>29,
'job'=>array(
'title'=>'经理',
'salary'=>8888,
'team'=>array('小红','小明','小华')
)
); function arr2xml($arr,$node=null) {
if($node === null) {
$simxml = new simpleXMLElement('<? xml version="1.0" encoding="utf-8"? ><root></root>');
} else {
$simxml = $node;
}
// simpleXMLElement对象怎样添加子节点? foreach($arr as $k=>$v) {
if(is_array($v)) {
//$simxml->addChild($k);
arr2xml($v,$simxml->addChild($k));
} else if(is_numeric($k)) { //标签不能以数字开头,和变量相似
$simxml->addChild('item' . $k,$v);
} else {
$simxml->addChild($k,$v);
}
} return $simxml->saveXML();
} header('content-type: text/xml');
echo arr2xml($arr);

执行结果:

2 xml转数组

<?

php
/***
// 訪问时,一会用->, 一会用[],不方便
// 接下来我们练习xml转数组
echo $simxml->book[0]->title; 利用simplexml对象把xml文件转成数组,
***/ /*
对象 用属性名->属性值,存储变量
数组 用键名->键值 ,来存储变量
二者差别不大,在js里,对象就能够看成关联数组来操作.
*/ $simxml = simplexml_load_file('./book.xml'); /*
print_r($simxml); echo '<hr />'; // 类型强制转换,把对象转成数组
print_r((array) $simxml); //最外层是数组。里面可能还包括对象
*/ // 写一个函数,递归把simpleXML对象转成数组
// 思路:先把最外层对象转成数组,再循环数组,
// 某个单元仅仅要还是对象,就继续调用自身来转换 function toArray($sim) {
$arr = (array) $sim; foreach($arr as $k=>$v) {
if($v instanceof simplexmlelement || is_array($v)) {
$arr[$k] = toArray($v);
}
} return $arr;
} print_r($simxml); print_r($xmlarr = toArray($simxml)); echo $xmlarr['book']['1']['title'];

版权声明:本文博客原创文章,转载请注明出处 http://blog.csdn.net/buyingfei8888

XML数组和对象,反之亦然的更多相关文章

  1. ajax处理返回的三种格式(json格式 , xml通用格式 , html文本格式)(数据类型:整数、字符串、数组、对象)(基础最重要!)

    ajax方法的参数 常用的ajax参数比如url,data,type,包括预期返回类型dataType,发送到服务器的数据的编码类型contentType,成功方法,失败方法,完成方法.除了这些以外还 ...

  2. PHP 数组和对象的相互转化

    对象和数组的相互转化在开发中也是很常见,一般不是多维的情况下直接(array)和(object)就可搞定了,多维的话,遍历下也就可以了: 1 <?php 2 class test 3 { 4 p ...

  3. C# xml数组的序列和反序列化

    先来看xml <?xml version="1.0"?> <root xmlns:xsi="http://www.w3.org/2001/XMLSche ...

  4. Java&Xml教程(十一)JAXB实现XML与Java对象转换

    JAXB是Java Architecture for XML Binding的缩写,用于在Java类与XML之间建立映射,能够帮助开发者很方便的將XML和Java对象进行相互转换. 本文以一个简单的例 ...

  5. Java&amp;Xml教程(十一)JAXB实现XML与Java对象转换

    JAXB是Java Architecture for XML Binding的缩写,用于在Java类与XML之间建立映射,可以帮助开发人员非常方便的將XML和Java对象进行相互转换. 本文以一个简单 ...

  6. JSON和XML格式与对象的序列化及反序列化的辅助类

    下面的代码主要是把对象序列化为JSON格式或XML格式等 using System; using System.Collections.Generic; using System.Globalizat ...

  7. JavaScript学习总结(二)数组和对象部分

    pt学习总结(二)数组和对象部分 2016-09-16    分类:WEB开发.编程开发.首页精华暂无人评论     来源:trigkit4 分享到:更多1 对象部分 Object类型 Object  ...

  8. 使用sessionStorage、localStorage存储数组与对象(转)

    http://my.oschina.net/crazymus/blog/371757 使用sessionStorage.localStorage存储数组与对象 发表于3个月前(2015-01-26 1 ...

  9. js之数组,对象,类数组对象

    许久不写了,实在是不知道写点什么,正好最近有个同事问了个问题,关于数组,对象和类数组的,仔细说起来都是基础,其实都没什么好讲的,不过看到还是有很多朋友有些迷糊,这里就简单对于定义以及一下相同点,不同点 ...

随机推荐

  1. windows phone 7 客户端和web的交互(WebBrowser的使用)

    原文:windows phone 7 客户端和web的交互(WebBrowser的使用) 前几天看到淘宝的Android客户端,有种促销的功能,当点击促销的时候连接的淘宝促销wap页面,然后点击商品后 ...

  2. Windows phone 8 学习笔记(5) 图块与通知

    原文:Windows phone 8 学习笔记(5) 图块与通知 基于metro风格的Windows phone 8 应用提到了图块的概念,它就是指启动菜单中的快速启动图标.一般一个应用必须有一个默认 ...

  3. HUNNU11354:Is the Name of This Problem

    http://acm.hunnu.edu.cn/online/?action=problem&type=show&id=11354&courseid=0 Problem des ...

  4. ASP.NET Core环境并运行 继续跨平台

    ASP.NET Core环境并运行 继续跨平台 无需安装mono,在Linux(Ubuntu)下搭建ASP.NET Core环境 继续.NET跨平台 上一篇:使用VS Code开发ASP.NET Co ...

  5. altKey,ctrlKey,shiftKey

    <1> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>< ...

  6. java平台的常用资源

    分离领域 翻译 from :akullpp | awesome-java 大家一起学习,共同进步. 如果大家觉得有用,就mark一下,赞一下,或评论一下,让更多的人知道.thanks. 构建 这里搜集 ...

  7. Windows Phone开发(4):框架和页

    原文:Windows Phone开发(4):框架和页 在开如之前,我想更正一个小问题,之前我在第一篇文章中说,Visual Studio Express for Windows Phone的中文版没有 ...

  8. simplePagination API

    simplePagination API simplePagination.js 一个简单的jQuery分页插件,主题和Bootstrap支持CSS 3 分页button样式 "light- ...

  9. 轻松管理您的网络password

    在互联网在现在这个时代,,我们注册了很多帐户.支付宝账号password,各种宝账户password.微信,QQ,电话password,购买各种网站,金融password,它是不是让孩子们的鞋子瞬间淡 ...

  10. sharepoint 2013 使用powershell更改站点集配额和锁定

    打开sharepoint powershell 2013,使用管理员方式打开 逐行输入下面命令: $Admin =  new-object Microsoft.SharePoint.Administr ...