<?php
function xml_encode($data, $charset = 'utf-8', $root = 'so') {
$xml = '<?xml version="1.0" encoding="' . $charset .'"?>';
$xml .= "<{$root}>";
$xml .= array_to_xml($data);
$xml .= "</{$root}>";
return $xml;
} function xml_decode($xml, $root = 'so') {
$search = '/<(' . $root . ')>(.*)<\/\s*?\\1\s*?>/s';
$array = array();
if(preg_match($search, $xml, $matches)){
$array = xml_to_array($matches[2]);
}
return $array;
} function array_to_xml($array) {
if(is_object($array)){
$array = get_object_vars($array);
}
$xml = '';
foreach($array as $key => $value){
$_tag = $key;
$_id = null;
if(is_numeric($key)){
$_tag = 'item';
$_id = ' id="' . $key . '"';
}
$xml .= "<{$_tag}{$_id}>";
$xml .= (is_array($value) || is_object($value)) ? array_to_xml($value) : htmlentities($value);
$xml .= "</{$_tag}>";
}
return $xml;
} function xml_to_array($xml) {
$search = '/<(\w+)\s*?(?:[^\/>]*)\s*(?:\/>|>(.*?)<\/\s*?\\1\s*?>)/s';
$array = array ();
if(preg_match_all($search, $xml, $matches)){
foreach ($matches[1] as $i => $key) {
$value = $matches[2][$i];
if(preg_match_all($search, $value, $_matches)){
$array[$key] = xml_to_array($value);
}else{
if('ITEM' == strtoupper($key)){
$array[] = html_entity_decode($value);
}else{
$array[$key] = html_entity_decode($value);
}
}
}
}
return $array;
}

array与xml转换实现(转)的更多相关文章

  1. 如何在ASP.NET中用C#将XML转换成JSON

    本文旨在介绍如果通过C#将获取到的XML文档转换成对应的JSON格式字符串,然后将其输出到页面前端,以供JavaScript代码解析使用.或许你可以直接利用JavaScript代码通过Ajax的方式来 ...

  2. 如何在ASP.NET中用C#将XML转换成JSON 【转】

      本文旨在介绍如果通过C#将获取到的XML文档转换成对应的JSON格式字符串,然后将其输出到页面前端,以供JavaScript代码解析使用.或许你可以直接利用JavaScript代码通过Ajax的方 ...

  3. 转 JSON与XML转换

    这两天处理模块的联调工作,在json与XML转换中出现了一些奇怪的问题,仔细究来,实为对org.json.*包知之太少.晚上baidu.google一下,找出了问题出现的原因.在模块中,使用了两个方法 ...

  4. XML转换成数组方法

    <?php function xmlToArray2($xml) { // 将XML转为array $array_data = json_decode(json_encode(simplexml ...

  5. Dom4j把xml转换成Map(固定格式)

    /** * 可解析list * * @param fileName * @return * @throws Exception */ @SuppressWarnings("unchecked ...

  6. Dom4j把xml转换成Map(非固定格式)

    将xml转换成Map,能够应对不用结构的xml,而不是只针对固定格式的xml.转换规则:1.主要是Map与List的互相嵌套2.同名称的节点会被装进List 示例: import java.util. ...

  7. 字符串json转换为xml xml转换json

    原文:字符串json转换为xml xml转换json // To convert an XML node contained in string xml into a JSON string XmlD ...

  8. C#将XML转换成JSON转换XML

    原文:C#将XML转换成JSON转换XML using System; using System.Collections.Generic; using System.Linq; using Syste ...

  9. C#将XML转换成JSON 使用 JavaScript 将 XML 转成 JSON

    如何在ASP.NET中用C#将XML转换成JSON [JavaScript]代码 // Changes XML to JSON function xmlToJson(xml) { // Create ...

随机推荐

  1. jsp相关笔记(一)

    1.在html中调整两个<p>标签之间的间距,可以用margin属性: p { margin: 0.2em 0;} 2.在jsp中要对页面分成上.左.右三栏时,可以用<framese ...

  2. js原生的节点操作API

    // yi获取元素节点 //一 :过id的方式( 通过id查找元素,大小写敏感,如果有多个id只找到第一个) document.getElementById('div1'); // 通过类名查找元素, ...

  3. centos中单进程监控

    [root@k8s6 proc]# ps aux|grep -v PID|sort -rn -k +|head - root ? Ssl : : /usr/bin/dockerd root ? Ssl ...

  4. vi分屏指令

    用vi打开,view打开vsplit不支持 命令模式下::new,新建文件并分屏, 快捷键,Ctrl+W,然后马上按n键:spilt 水平分屏,将当前屏分为两个,水平的.   Ctrl + w, s: ...

  5. http错误代码提示

    1×× 保留 2×× 表示请求成功地接收 3×× 为完成请求客户需进一步细化请求 4×× 客户错误 5×× 服务器错误 200  正常:请求已完成.  201  正常:紧接 POST 命令.  202 ...

  6. 【慕课网实战】Spark Streaming实时流处理项目实战笔记十四之铭文升级版

    铭文一级: 第11章 Spark Streaming整合Flume&Kafka打造通用流处理基础 streaming.conf agent1.sources=avro-sourceagent1 ...

  7. linux下设置计划任务执行python脚本

    linux下设置计划任务执行python脚本 简介 crontab命令被用来提交和管理用户的需要周期性执行的任务,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自 ...

  8. Alpha冲刺 (2/10)

    Part.1 开篇 队名:彳艮彳亍团队 组长博客:戳我进入 作业博客:班级博客本次作业的链接 Part.2 成员汇报 组员1(组长)柯奇豪 过去两天完成了哪些任务 学习并配置了ssm框架(用于前后端交 ...

  9. day13_雷神_前端01

    #前端 html 服务器端返回的就是一个字符串,浏览器根据html规则去渲染这个字符串. html 是超文本标记语言,相当于定义统一的一套规则,大家都遵守它,这样就可以让浏览器根据标记语言的规则去解释 ...

  10. Linux基础理论

    本节内容 1.  Linux的安装及相关配置 2.  UNIX和Linux操作系统概述 3.  Linux命令及帮助 4.  目录结构 6.  用户.群组和权限 7.  用户.群组和权限的深入讨论 1 ...