博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
XML转JSON的javascript代码
阅读量:6838 次
发布时间:2019-06-26

本文共 1800 字,大约阅读时间需要 6 分钟。

  hot3.png

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

  

  

// Changes XML to JSONfunction xmlToJson(xml) { 	// Create the return object	var obj = {}; 	if (xml.nodeType == 1) { // element		// do attributes		if (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) { // text		obj = xml.nodeValue;	} 	// do children	if (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为:

  

  

  通过上面的函数转换后的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

你可能感兴趣的文章
第四课-第二讲04_02_权限及权限管理
查看>>
Python入门小程序(一)
查看>>
Spring Batch 介绍
查看>>
高德地图入门(一)——工程配置
查看>>
手机上把PDF转换成Word文档的方法,很实用幺
查看>>
学习JVM-运行时数据区
查看>>
NSOperation 简介和应用
查看>>
必读的Python入门书籍,你都看过吗?(内有福利)
查看>>
嵌入式arm产品相关知识及应用
查看>>
python select模块详解
查看>>
mac 系统下 php生成目录,移动保存文件问题
查看>>
Hibernate中update()和merge()的区别
查看>>
jmeter学习笔记之二——创建一个简单的压测脚本
查看>>
我的友情链接
查看>>
如何 Scale Up/Down Deployment?- 每天5分钟玩转 Docker 容器技术(126)
查看>>
页面$未定义的问题
查看>>
nginx
查看>>
关于Java的相关基础信息
查看>>
50款漂亮的国外婚礼邀请函设计(上篇)
查看>>
Java调用DotNet WebService为什么那么难?
查看>>