为什么80%的码农都做不了架构师?>>>   

下面是神奇的XML转JSON的javascript代码:

  

  

// Changes XML to JSON
function xmlToJson(xml) {// Create the return objectvar obj = {};if (xml.nodeType == 1) { // element// do attributesif (xml.attributes.length > 0) {obj["@attributes"] = {};for (var j = 0; j < xml.attributes.length; j++) {var attribute = xml.attributes.item(j);obj["@attributes"][attribute.nodeName] = attribute.nodeValue;}}} else if (xml.nodeType == 3) { // textobj = xml.nodeValue;}// do childrenif (xml.hasChildNodes()) {for(var i = 0; i < xml.childNodes.length; i++) {var item = xml.childNodes.item(i);var nodeName = item.nodeName;if (typeof(obj[nodeName]) == "undefined") {obj[nodeName] = xmlToJson(item);} else {if (typeof(obj[nodeName].length) == "undefined") {var old = obj[nodeName];obj[nodeName] = [];obj[nodeName].push(old);}obj[nodeName].push(xmlToJson(item));}}}return obj;
};

下面的XML为:

  

  

<ALEXA VER="0.9" URL="davidwalsh.name/" HOME="0" AID="="><SD TITLE="A" FLAGS="" HOST="davidwalsh.name"><TITLE TEXT="David Walsh Blog :: PHP, MySQL, CSS, Javascript, MooTools, and Everything Else"/><LINKSIN NUM="1102"/><SPEED TEXT="1421" PCT="51"/></SD><SD><POPULARITY URL="davidwalsh.name/" TEXT="7131"/><REACH RANK="5952"/><RANK DELTA="-1648"/></SD>
</ALEXA>

  通过上面的函数转换后的JSON为:

  

  

{"@attributes": {AID: "=",HOME:  0,URL: "davidwalsh.name/",VER: "0.9",},SD = [{"@attributes": {FLAGS: "",HOST: "davidwalsh.name",TITLE: A},LINKSIN: {"@attributes": {NUM: 1102}},SPEED: {"@attributes": {PCT: 51,TEXT: 1421}},TITLE: {"@attributes": {TEXT: "David Walsh Blog :: PHP, MySQL, CSS, Javascript, MooTools, and Everything Else",}},},{POPULARITY: {"@attributes": {TEXT: 7131,URL: "davidwalsh.name/"}},RANK: {"@attributes": {DELTA: "-1648"}},REACH: {"@attributes": {RANK = 5952}}}]
}

原文地址:Convert XML to JSON with JavaScript

转载于:https://my.oschina.net/huiger/blog/233124

XML转JSON的javascript代码相关推荐

  1. 实测:xml与json速度约差4倍

    xml与json在javascript中解析并使用,速度大约相差4倍.(在IE中测试的结果). 其中主要不在于eval,与xml parse的时间差别,主要在于属性访问上的差别: xml中使用这样的方 ...

  2. win8/Metro开发系七 win8 对常见数据源的解析及处理 如:xml,json,以及html代码

    首先还是那句话,我不是大牛,这些只是简单的记录一下学习的过程,没有太多面向对象和设计模式的思维,只偏基础,不喜莫笑:个人观点如果有不足之处,还望多多指教! 导语:程序开发中往往涉及到各种数据源,所以就 ...

  3. json文件转为excel_2分钟上手、3小时学会无代码软件开发---XML、Json处理

    XML文件使用 合成XML格式文本 用Serialize XML(合成XML格式文本元件)将数据转换为XML文本 上例中我们先设计了一个数据结构并为数据结构中变量做了赋值处理数据结构作为输入对象传给S ...

  4. java 原生 json 转 xml java json转xml 实现代码 读取本地json文件 转成 xml数据 用springboot 发布xml格式数据

    结果xml截图 json数据 main启动 import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; ...

  5. Java执行JavaScript代码:传参、获取变量、返回值、JSON对象

    脚本包 Java 脚本功能是在 javax.script 包中.这是一个比较小的,简单的API.脚本的出发点是 ScriptEngineManager 类,ScriptEngineManager是一个 ...

  6. 几行代码搞定树形文本转XML和JSON

    由于需要将百度脑图的内容导出为xml或者json格式,发现百度脑图只能导出为树形文本,所以就写了个小应用给编辑用. /// <summary>/// 树形文本转xml/// </su ...

  7. XML和JSON 数据交换格式

    为什么80%的码农都做不了架构师?>>>    一.什么是数据交换格式? 客户端与服务器常用数据交换格式xml.json.html 二.数据交换格式应用场景 移动端(安卓.IOS)通 ...

  8. 【科普】:10分钟看明白XML和JSON

    引言 NOKIA 有句著名的广告语:"科技以人为本".任何技术都是为了满足人的生产生活需要而产生的.具体到小小的一个手机,里面蕴含的技术也是浩如烟海,是几千年来人类科技的结晶,单个 ...

  9. XML和JSON两种数据交换格式的比较

    目前,在web开发领域,主要的数据交换格式有XML和JSON,对于XML相信每一个web developer都不会感到陌生: 相比之下,JSON可能对于一些新步入开发领域的新手会感到有些陌生,也可能你 ...

最新文章

  1. MyBatis学习--简单的增删改查
  2. java 日期的工具类_java 日期时间工具类
  3. Java泛型详解,通俗易懂只需5分钟
  4. Python学习笔记 setdict
  5. Spring来装配组件
  6. 单片机/嵌入式软件架构分层思想
  7. 卡巴斯基:风险无国界 网络安全从业者要与小网民保持一致
  8. 超全Linux备份工具集合,满足你的所有需要!
  9. 简述传统动画跟计算机动画的异同点,Flash动画设计与传统动画设计的特点比较研究...
  10. python 输出文件中返回码为200的接口的平均响应时间_python-处理日志文件,找出各个接口状态码为 200时的平均响应时间...
  11. 河南计算机基础知识会考,2011河南事业单位备考计算机基础知识试题(含答案 )...
  12. Windows系统如何删除远程桌面连接记录
  13. python编辑数学公式_最好用的文字与公式编辑器,这套数学笔记神器送给你
  14. android 自定义柱形图简书,android 自定义网状图
  15. EPUB、CAJ 、PDF 格式的区别,有什么好用的安卓epub阅读器
  16. 腾讯云--添加二级域名
  17. 99kk1.com login.php,自己写的qq登录功能,无需官方SDK
  18. Golang多线程文件传输
  19. python 图灵机器人_图灵机器人 python 试玩
  20. 一个轻量级的RGB颜色选择器--jscolor

热门文章

  1. 怎么把本地项目和远程git仓库相连通
  2. MySQL高级 之 explain执行计划详解
  3. 安卓天天练练(十一)用list绑数据
  4. POJ 2653 线段交
  5. linux 关闭nginx进程,Linux环境下启动、停止、重启nginx
  6. linux bios芯片型号,如何准确判断主板BIOS类型 - 怎么看bios芯片型号_查看bios芯片型号...
  7. 添加打印机还显示脱机_打印机总是显示脱机无法打印的解决办法
  8. int main( int argc , char *argv[] , char *envp[] )中参数解说
  9. win10装linux分区格式化硬盘,windows10 下硬盘安装centos7.0 – MBR硬盘分区格式
  10. Python 图像 一样大小_Python图像处理,顺便生成一张海报