x2js
這是一個在XML和JavaScript對象之間進行轉(zhuǎn)換的庫阅虫。轉(zhuǎn)換不一定是無損的史辙,但非常方便挡爵。(自己體會)
安裝配置
可以到GitHub主頁去下載庫代碼
地址 :https://github.com/abdmob/x2js-
然后直接在使用的頁面引用即可
<script type='text/javascript' src="xml2json.js"></script>
-
npm安裝
npm i x2js
使用
- 下文介紹npm安裝后在vue項目中使用(僅xml轉(zhuǎn)json衫樊,其余自己探索)
x2js.xml2js(xml) //xml2js方法身诺,傳入xml格式的數(shù)據(jù),返回json對象
方法一
-
在main.js中引用
import x2js from 'x2js' //xml數(shù)據(jù)處理插件 Vue.prototype.$x2js = new x2js() //創(chuàng)建x2js對象禾酱,掛到vue原型上
-
在組件中使用
var jsonObj = this.$x2js.xml2js('<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soap:Body><ns1:getSDLengthByJMLXResponse xmlns:ns1="http://server.Gw"><ns1:out><?xml version="1.0" encoding="UTF-8"?><NODES><NODE><NAME>方溝</NAME><VALUE>337.9432807</VALUE></NODE><NODE><NAME>磚混</NAME><VALUE>66.8424335</VALUE></NODE><NODE><NAME>盾構(gòu)</NAME><VALUE>14.8955979</VALUE></NODE><NODE><NAME>暗挖</NAME><VALUE>48.1186321</VALUE></NODE><NODE><NAME>頂管</NAME><VALUE>2.9357091</VALUE></NODE><NODE><NAME>總長度</NAME><VALUE>1272.8081174</VALUE></NODE><NODE><NAME>檢查井總數(shù)</NAME><VALUE>94885</VALUE></NODE></NODES></ns1:out></ns1:getSDLengthByJMLXResponse></soap:Body></soap:Envelope>') var newjsonObj = this.$x2js.xml2js(jsonObj.Envelope.Body.getSDLengthByJMLXResponse.out.__text) for(var i = 0;i<newjsonObj.NODES.NODE.length;i++){ console.log(newjsonObj.NODES.NODE[i].NAME) console.log(newjsonObj.NODES.NODE[i].VALUE) }
因為這個返回的xml數(shù)據(jù)是兩次嵌套微酬,所以執(zhí)行了兩次xml2js(xml)方法
- 打印結(jié)果
方法二
-
直接在組件中require()
const x2js = require('x2js')
-
在執(zhí)行的方法中使用
var x2jsone = new x2js() var jsonObj = x2jsone.xml2js('<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soap:Body><ns1:getSDLengthByJMLXResponse xmlns:ns1="http://server.Gw"><ns1:out><?xml version="1.0" encoding="UTF-8"?><NODES><NODE><NAME>方溝</NAME><VALUE>337.9432807</VALUE></NODE><NODE><NAME>磚混</NAME><VALUE>66.8424335</VALUE></NODE><NODE><NAME>盾構(gòu)</NAME><VALUE>14.8955979</VALUE></NODE><NODE><NAME>暗挖</NAME><VALUE>48.1186321</VALUE></NODE><NODE><NAME>頂管</NAME><VALUE>2.9357091</VALUE></NODE><NODE><NAME>總長度</NAME><VALUE>1272.8081174</VALUE></NODE><NODE><NAME>檢查井總數(shù)</NAME><VALUE>94885</VALUE></NODE></NODES></ns1:out></ns1:getSDLengthByJMLXResponse></soap:Body></soap:Envelope>') var newjsonObj = x2jsone.xml2js(jsonObj.Envelope.Body.getSDLengthByJMLXResponse.out.__text) for(var i = 0;i<newjsonObj.NODES.NODE.length;i++){ console.log(newjsonObj.NODES.NODE[i].NAME) console.log(newjsonObj.NODES.NODE[i].VALUE) }
打印結(jié)果(同上)
矯情下
實現(xiàn)的方法有很多,這里只是兩種
這里卿洋
愿喜??