我将通过使用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;
var jsonObj = x2js.xml2json(xmlText);
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");
var x2js = new X2JS();
var jsonObj = x2js.xml2json(xmlDoc);
console.log(jsonObj);
</script>
</body>
</html>
根据您在问题中提供的示例,将关闭的<result>
标签修复为</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>
</result>
中的/
符号。 - Kaiido