[js] js 将字符串xml 转成 json对象
来源:互联网 发布:windows集中管理 编辑:程序博客网 时间:2024/04/30 12:48
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head> <title></title> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <meta http-equiv="Content-Language" content="zh-CN" /> <meta name="Keywords" content="" /> <meta name="Description" content="" /> <script src="jQuery.js" type="text/javascript"></script><script> //解析xml字符串变量为IXMLDOMDocument2 function parseXML(data) { var xml, tmp; if (window.DOMParser) { // Standard tmp = new DOMParser(); xml = tmp.parseFromString(data, "text/xml"); } else { // IE xml = new ActiveXObject("Microsoft.XMLDOM"); xml.async = "false"; xml.loadXML(data); } tmp = xml.documentElement; if (!tmp || !tmp.nodeName || tmp.nodeName === "parsererror") { return null; } return xml;}//将 IXMLDOMDocument2 转换为JSON,参数为IXMLDOMDocument2对象 function toJson(obj) { if (this == null) return null; var retObj = new Object; buildObjectNode(retObj, /*jQuery*/ obj); return retObj; function buildObjectNode(cycleOBJ, /*Element*/ elNode) { /*NamedNodeMap*/ var nodeAttr = elNode.attributes; if (nodeAttr != null) { if (nodeAttr.length && cycleOBJ == null) cycleOBJ = new Object; for (var i = 0; i < nodeAttr.length; i++) { cycleOBJ[nodeAttr[i].name] = nodeAttr[i].value; } } var nodeText = "text"; if (elNode.text == null) nodeText = "textContent"; /*NodeList*/ var nodeChilds = elNode.childNodes; if (nodeChilds != null) { if (nodeChilds.length && cycleOBJ == null) cycleOBJ = new Object; for (var i = 0; i < nodeChilds.length; i++) { if (nodeChilds[i].tagName != null) { if (nodeChilds[i].childNodes[0] != null && nodeChilds[i].childNodes.length <= 1 && (nodeChilds[i].childNodes[0].nodeType == 3 || nodeChilds[i].childNodes[0].nodeType == 4)) { if (cycleOBJ[nodeChilds[i].tagName] == null) { cycleOBJ[nodeChilds[i].tagName] = nodeChilds[i][nodeText]; } else { if (typeof(cycleOBJ[nodeChilds[i].tagName]) == "object" && cycleOBJ[nodeChilds[i].tagName].length) { cycleOBJ[nodeChilds[i].tagName][cycleOBJ[nodeChilds[i].tagName].length] = nodeChilds[i][nodeText]; } else { cycleOBJ[nodeChilds[i].tagName] = [cycleOBJ[nodeChilds[i].tagName]]; cycleOBJ[nodeChilds[i].tagName][1] = nodeChilds[i][nodeText]; } } } else { if (nodeChilds[i].childNodes.length) { if (cycleOBJ[nodeChilds[i].tagName] == null) { cycleOBJ[nodeChilds[i].tagName] = new Object; buildObjectNode(cycleOBJ[nodeChilds[i].tagName], nodeChilds[i]); } else { if (cycleOBJ[nodeChilds[i].tagName].length) { cycleOBJ[nodeChilds[i].tagName][cycleOBJ[nodeChilds[i].tagName].length] = new Object; buildObjectNode(cycleOBJ[nodeChilds[i].tagName][cycleOBJ[nodeChilds[i].tagName].length - 1], nodeChilds[i]); } else { cycleOBJ[nodeChilds[i].tagName] = [cycleOBJ[nodeChilds[i].tagName]]; cycleOBJ[nodeChilds[i].tagName][1] = new Object; buildObjectNode(cycleOBJ[nodeChilds[i].tagName][1], nodeChilds[i]); } } } else { cycleOBJ[nodeChilds[i].tagName] = nodeChilds[i][nodeText]; } } } } } }}</script></head><body style="background:#000;"> <textarea style="width:950px;height: 500px;"> <site> <id>abc7b4ab46494f0bba6e8e4709c7eaa0</id> <name>SDK_101简易模板</name> <author name="[提示:请添加模板作者名称]" url="http://www.yourwebsite.com" wangwang="[提示:请添加模板作者的旺旺]"></author> <thumbnail>assets/images/default-thumbnail.png</thumbnail> <language>PHP</language> <version>1.0.0</version> <apply-sites>2</apply-sites> <apply-user>c测试账号154</apply-user> <template-type>1</template-type> <sale-type>1</sale-type> <change-notes>[提示:请添加模板修改日志]</change-notes> <description>SDK_101简易模板</description> <global> <header>header.json</header> <footer>footer.json</footer> </global> <themes default="第一风格"> <theme name="第二风格"> <css>assets/stylesheets/style2/extra.css</css> <thumbnail>assets/images/default-thumbnail.png</thumbnail> </theme> <theme name="第一风格"> <css>assets/stylesheets/style1/extra.css</css> <thumbnail>assets/images/default-thumbnail.png</thumbnail> </theme> <theme name="第三风格"> <css>assets/stylesheets/style3/extra.css</css> <thumbnail>assets/images/default-thumbnail.png</thumbnail> </theme> <theme name="第四风格"> <css>assets/stylesheets/style4/extra.css</css> <thumbnail>assets/images/default-thumbnail.png</thumbnail> </theme> </themes> <pages> <page type="index"> <name>首页</name> <file>index.json</file> <thumbnail>assets/images/default-thumbnail.png</thumbnail> <description xsi:type="xs:string" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">[提示:请添加首页的描述]</description> </page> <page type="detail"> <name>默认宝贝详情页</name> <file>detail.json</file> <thumbnail>assets/images/default-thumbnail.png</thumbnail> <description xsi:type="xs:string" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">[提示:请添加默认宝贝详情页的描述]</description> </page> <page type="list"> <name>默认宝贝分类页</name> <file>list.json</file> <thumbnail>assets/images/default-thumbnail.png</thumbnail> <description xsi:type="xs:string" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">[提示:请添加默认宝贝分类页的描述]</description> </page> <page type="other"> <name>自定义页面</name> <file>other.json</file> <thumbnail>assets/images/default-thumbnail.png</thumbnail> <description xsi:type="xs:string" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">[提示:请添加自定义页面的描述]</description> </page> </pages></site> </textarea> <script> var xml=$('textarea').val(); var j=toJson(parseXML(xml)); alert( JSON.stringify(j) ); </script></body></html>
0 0
- [js] js 将字符串xml 转成 json对象
- js 将json对象转成字符串
- js 将字符串类型的xml转成xml对象
- js中 json字符串转成json对象
- js把json字符串转成json对象
- jquery 将 json字符串转成js object
- js将对象转成json格式
- js字符串转成JSON
- js 将json字符串转为js对象
- Js+XML字符串 操作并转成json格式字符串
- js里面JSON格式的字符串转成JSON对象
- 将字符串转成json对象
- c#中将【对象转成 JSON 格式的字符串】 及获取Json格式字符串并将转成Json对象 及对js数组取数据
- js 字符串转成json格式
- 扩展juery 将 js object对象 转成 json结构字符串 用于ajax 传递json (验证可用)后台 对应fastJSON
- JS 将JSON对象转换为字符串
- JS 将JSON对象转换为字符串
- js 将字符串转换为json对象
- 最小生成树-克鲁斯卡尔算法(kruskal's algorithm)实现
- UIAlertView、UIActionSheet
- linux vi 编辑器
- php 追加内容到txt文件中
- Java历史
- [js] js 将字符串xml 转成 json对象
- 文章标题
- 视图篇——前言
- 郑州到威海旅游景点推荐
- 黑马程序员关于c语言数组详解
- Activity 實現底部彈框
- linux内核学习-7重要函数(关注新浪微博:寂寞侵蚀的岁月(4000多篇技术分享))
- 初始化、赋值及内存模型
- poj 3345 Bribing FIPA