2016-04-29 48 views
4

我有我想要在JSON字符串XML字符串JSON的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>"; 

我試圖最初使用的解析器轉換它在DOM對象轉換爲XML字符串,但它拋出解析錯誤。

parser = new DOMParser(); 
xmlDoc = parser.parseFromString(txt,"text/xml"); 

我通過使用Javascript

{"result":[{"id":"1","type":"HL","ven":"DEMOMA"},{"id":"2","type":"HL","ven":"DEMOMB"}]} 
+3

可能的複製(http://stackoverflow.com/questions/1773550/convert-xml-to-json-and-back -using-javascript) –

+0

我只能使用Javascript。沒有java沒有Jquery :( –

+0

jQuery是JavaScript – Phil

回答

1

看看這個https://github.com/metatribal/xmlToJSON

它是一個非常小的和有用的腳本要像只是我的輸出JSON字符串。用法非常簡單。

包含在src

<script type="text/javascript" src="path/xmlToJSON.js"></script>

和享受! xmlToJSON被打包成一個簡單模塊,所以像這樣使用它

testString = '<xml><a>It Works!</a></xml>'; // get some xml (string or document/node) 
result = xmlToJSON.parseString(testString); // parse 

'result'是你的JSON對象。

2

我會盡量用x2js.jshttps://github.com/abdmob/x2jsjquery(和沒有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>到[轉換XML到JSON(和背面)使用Javascript] </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>