这个是一个简单的 xml2js 使用示例
将后台返回的
xml
代码转换为前台可使用的json
格式的字符串
github 源码地址
源码
app.js
var fs = require('fs'),
xml2js = require('xml2js')
var parser = new xml2js.Parser({ explicitArray: false })
fs.readFile(__dirname + '/data.xml', function(err, data) {
parser.parseString(data, function(err, result) {
console.log(err)
console.log(result)
fs.writeFile('data.json', JSON.stringify(result), err => {
if (err) throw err
console.log('文件已保存')
})
})
})
data.xml
<BillInfo xmlns="http://bill.xmlbeans.zhcx.asiainfo.com/">
<ReturnCode>0</ReturnCode>
<ReturnDetail>查询调用成功返回!</ReturnDetail>
<SysId>1</SysId>
<PpFlag>2</PpFlag>
<BillType>25</BillType>
<RegionId>71</RegionId>
<BillCycle>201812</BillCycle>
<PageNum>1</PageNum>
<PageSize>1</PageSize>
<PostAddr>下沙开发区海天城3-1-2401</PostAddr>
<AcctCode>2711025709493</AcctCode>
<Desc>TY3G</Desc>
<FB>
<BN>中国电信股份有限公司杭州分公司客户帐单</BN>
<TL>
<TI>
<IN>帐户名称</IN>
<IV>卢倩</IV>
</TI>
<TI>
<IN>费用提示</IN>
<IV>您本期费用已结清,无需另外付费。</IV>
</TI>
<TI>
<IN>帐单周期</IN>
<IV>2018年12月01日至2018年12月31日</IV>
</TI>
<TI>
<IN>帐户号码</IN>
<IV>2711025709493</IV>
</TI>
<TI>
<IN>打印日期</IN>
<IV>2019年01月15日</IV>
</TI>
</TL>
<FEE>
<FL>
<FN/>
<FU>手机:13336024342</FU>
<FT>104.82</FT>
<FI>
<IT>
<IN>月基本费</IN>
<IV>99.00,0.00,99.00</IV>
<IL>2</IL>
<IB>1</IB>
<IBM>0</IBM>
<ITOP>0</ITOP>
<IBUT>0</IBUT>
</IT>
<IT>
<IN>基本包月费</IN>
<IV>99.00,0.00,99.00</IV>
<IL>3</IL>
<IB>0</IB>
<IBM>0</IBM>
<ITOP>0</ITOP>
<IBUT>0</IBUT>
<ILK>{"key_num":"13336024342","flag":1,"serv_type":"5","item_id":"300146"}</ILK>
</IT>
<IT>
<IN>上网及数据通信费</IN>
<IV>5.82,0.00,5.82</IV>
<IL>2</IL>
<IB>1</IB>
<IBM>0</IBM>
<ITOP>0</ITOP>
<IBUT>0</IBUT>
</IT>
<IT>
<IN>WiFi使用费</IN>
<IV>5.82,0.00,5.82</IV>
<IL>3</IL>
<IB>0</IB>
<IBM>0</IBM>
<ITOP>0</ITOP>
<IBUT>0</IBUT>
<ILK>{"key_num":"13336024342","flag":1,"serv_type":"5","item_id":"302482"}</ILK>
</IT>
<IT>
<IN>综合信息服务费</IN>
<IV>5.00,-5.00,0.00</IV>
<IL>2</IL>
<IB>1</IB>
<IBM>0</IBM>
<ITOP>0</ITOP>
<IBUT>0</IBUT>
</IT>
<IT>
<IN>来电显示功能费</IN>
<IV>5.00,-5.00,0.00</IV>
<IL>3</IL>
<IB>0</IB>
<IBM>0</IBM>
<ITOP>0</ITOP>
<IBUT>0</IBUT>
<ILK>{"key_num":"13336024342","flag":1,"serv_type":"5","item_id":"200277"}</ILK>
</IT>
<IT>
<IN>本项小计:</IN>
<IV>109.82,-5.00,104.82</IV>
<IL>1</IL>
<IB>1</IB>
<IBM>0</IBM>
<ITOP>2</ITOP>
<IBUT>0</IBUT>
</IT>
</FI>
<FR>
<IT>
<IU/>
<IN>(共享)国内通话分钟数</IN>
<IC>300</IC>
<IV>102</IV>
<IF/>
</IT>
</FR>
</FL>
<FL>
<FN/>
<FU>手机:17705810431</FU>
<FT>19.00</FT>
<FI>
<IT>
<IN>综合信息服务费</IN>
<IV>24.00,-5.00,19.00</IV>
<IL>2</IL>
<IB>1</IB>
<IBM>0</IBM>
<ITOP>0</ITOP>
<IBUT>0</IBUT>
</IT>
<IT>
<IN>来电显示功能费</IN>
<IV>5.00,-5.00,0.00</IV>
<IL>3</IL>
<IB>0</IB>
<IBM>0</IBM>
<ITOP>0</ITOP>
<IBUT>0</IBUT>
<ILK>{"key_num":"17705810431","flag":1,"serv_type":"5","item_id":"200277"}</ILK>
</IT>
<IT>
<IN>副卡功能费</IN>
<IV>19.00,0.00,19.00</IV>
<IL>3</IL>
<IB>0</IB>
<IBM>0</IBM>
<ITOP>0</ITOP>
<IBUT>0</IBUT>
<ILK>{"key_num":"17705810431","flag":1,"serv_type":"5","item_id":"303163"}</ILK>
</IT>
<IT>
<IN>本项小计:</IN>
<IV>24.00,-5.00,19.00</IV>
<IL>1</IL>
<IB>1</IB>
<IBM>0</IBM>
<ITOP>2</ITOP>
<IBUT>0</IBUT>
</IT>
</FI>
<FR>
<IT>
<IU/>
<IN>(共享)国内通话分钟数</IN>
<IC>300</IC>
<IV>184</IV>
<IF/>
</IT>
</FR>
</FL>
</FEE>
<OIL>
<II>
<IN>帐户信息</IN>
<IL>
<IT>
<NM>本期费用合计:</NM>
<VL>123.82元</VL>
</IT>
<IT>
<NM>本期已付费用:</NM>
<VL>123.82元(其中赠款抵扣5.00元,本金抵扣118.82元)</VL>
</IT>
<IT>
<NM>本期未交费用:</NM>
<VL>0.00元</VL>
</IT>
<IT>
<NM>截至期末帐户可用余额:</NM>
<VL>46.01元</VL>
</IT>
<IT>
<NM/>
<VL/>
</IT>
<IT>
<NM>备注:</NM>
<VL>1.帐单支付请登陆网上营业厅(zj.189.cn)或翼支付网站(www.bestpay.com.cn)使用充值卡或银行卡进行充值交费。2.流量单位换算关系: 1MB=1024KB。3.自2016年7月起,电信企业用户费用欠交信息将逐步纳入人民银行征信中心浙江省分中心“浙江省企业信用信息辅助系统”。</VL>
</IT>
</IL>
</II>
<II>
<IN>积分信息</IN>
<IL>
<IT>
<NM>本期末可用积分=上期末可用积分-当期使用积分+本期新增可用积分</NM>
<VL/>
</IT>
<IT>
<NM><![CDATA[8410 = 10047 - 0 + 226]]></NM>
<VL/>
</IT>
<IT>
<NM>备注:年末到期积分为4398,请您及时兑换。积分兑换请登陆网上营业厅或天翼积分商城(jf.189.cn)< br>
温馨提醒:每月5日为积分出账日!</NM>
<VL/>
</IT>
</IL>
</II>
<II>
<IN>套餐说明</IN>
<IL/>
</II>
</OIL>
</FB>
</BillInfo>
文件说明
- app.js -> 主要的启动代码
- data.json -> 读取
xml
文件后,输出的json
数据 - data.xml -> 需要读取的
xml
文件
装包
yarn
启动应用
node app.js
网友评论