您现在的位置:首页 --> JavaScript --> 使用javascript将XML解析为JSON
使用javascript将XML解析为JSON
浏览:2328次 出处信息
今天看了David Walsh一篇把XML格式转换为JSON格式的文章,感觉不错,简单的转载了过来。
下面是神奇的XML转JSON的javascript代码:
// Changes XML to JSON function 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为:
<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
建议继续学习:
- JSON和JSONP的区别 (阅读:7664)
- XML和JSON (阅读:6689)
- 如何编写一个JSON解析器 (阅读:5402)
- 理解JSON:3分钟课程 (阅读:4783)
- 用 JavaScript 对 JSON 进行模式匹配 (Part 1 - 设计) (阅读:4386)
- 信XML,得自信 (阅读:3926)
- 前端模板引擎 (阅读:3775)
- 用 JavaScript 对 JSON 进行模式匹配 (Part 2 - 实现) (阅读:3725)
- Ajax和WEB服务数据格式:JSON JSONP (阅读:3506)
- xml转数组的方法 (阅读:3461)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
扫一扫订阅我的微信号:IT技术博客大学习
<< 前一篇:IFrame带来的Session问题
后一篇:能说明你的Javascript技术很烂的五个原因 >>
文章信息
- 作者:断桥残雪 来源: 断桥残雪部落格
- 标签: JSON XML
- 发布时间:2011-06-02 00:08:29
建议继续学习
近3天十大热文
- [70] Go Reflect 性能
- [68] 如何拿下简短的域名
- [65] Oracle MTS模式下 进程地址与会话信
- [63] 图书馆的世界纪录
- [62] IOS安全–浅谈关于IOS加固的几种方法
- [61] 【社会化设计】自我(self)部分――欢迎区
- [59] android 开发入门
- [54] 视觉调整-设计师 vs. 逻辑
- [49] 界面设计速成
- [48] 读书笔记-壹百度:百度十年千倍的29条法则