我有一个xml字符串,我想用
JSON字符串转换
var txt = "<?xml version='1.0' encoding='UTF-8' ?> <result> <info> <id>1</id> <type>HL</type> <ven>DEMOMA</ven> </info> <info> <id>2</id> <type>HL</type> <ven>DEMOMB</ven> </info> <result>";
我试图最初使用解析器在DOM对象中转换它,但它会抛出解析错误.
parser = new DOMParser(); xmlDoc = parser.parseFromString(txt,"text/xml");
我希望我的输出json字符串只能使用Javascript
{"result":[{"id":"1","type":"HL","ven":"DEMOMA"},{"id":"2","ven":"DEMOMB"}]}
解决方法
我将尝试使用x2js.js
https://github.com/abdmob/x2js和jquery(以及没有jQuery)库的示例进行解释.
从API获取XML数据并将此数据转换为JSON
用jQuery
<!DOCTYPE html> <html lang="en"> <head> <Meta charset="UTF-8"> <title></title> <script type="text/javascript" src="https://code.jquery.com/jquery-2.2.3.js"></script> <script type="text/javascript" src="xml2json.js"></script> </head> <body> <script type="text/javascript"> var x2js = new X2JS(); $.ajax({ url: 'http://ip-api.com/xml',dataType: 'XML',success: function(data) { var xmlText = data; // XML var jsonObj = x2js.xml2json(xmlText); // Convert XML to JSON console.log(jsonObj); } }); </script> </body> </html>
没有jQuery
<!DOCTYPE html> <html lang="en"> <head> <Meta charset="UTF-8"> <title></title> <script type="text/javascript" src="xml2json.js"></script> </head> <body> <script type="text/javascript"> function loadXMLDoc(dname) { if (window.XMLHttpRequest) { xhttp = new XMLHttpRequest(); } else { xhttp = new ActiveXObject("Microsoft.XMLHTTP"); } xhttp.open("GET",dname,false); xhttp.send(); return xhttp.responseXML; } var xmlDoc = loadXMLDoc("http://ip-api.com/xml"); // XML var x2js = new X2JS(); var jsonObj = x2js.xml2json(xmlDoc); // Convert XML to JSON console.log(jsonObj); </script> </body> </html>
并使用您提供的示例.修复已关闭<结果>到< / result>
<!DOCTYPE html> <html lang="en"> <head> <Meta charset="UTF-8"> <title></title> <script type="text/javascript" src="xml2json.js"></script> </head> <body> <script type="text/javascript"> var txt = "<?xml version='1.0' encoding='UTF-8' ?> <result> <info> <id>1</id> <type>HL</type> <ven>DEMOMA</ven> </info> <info> <id>2</id> <type>HL</type> <ven>DEMOMB</ven> </info> </result>"; var x2js = new X2JS(); var jsonObj = x2js.xml_str2json(txt); console.log(jsonObj); </script> </body> </html>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。