收藏
回答

怎么解析request请求返回来的数据

问题模块
API和组件

返回的是这样的,比如我只需要error msg里面的"Not in GZIP format" ,要怎么解析

<?xml version="1.0" encoding="GBK"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><soap:Header><out:system xmlns:out="http://www.ylzinfo.com/"></out:system></soap:Header><soap:Body><soap:Fault><faultcode>600</faultcode><faultstring><error msg="Not in GZIP format" /></faultstring></soap:Fault></soap:Body></soap:Envelope>

最后一次编辑于  2017-07-26
回答关注问题邀请回答
收藏

6 个回答

  •  john
     john
    2017-07-26

    太谢谢你了

    2017-07-26
    赞同
    回复
  • maq
    maq
    2017-07-26

    正则表达式写法不一样。


    /<error msg="([^"]+)/

    2017-07-26
    赞同
    回复
  •  john
     john
    2017-07-26

    可以了谢谢哥。可是我要用同样办法获取后面的faultstring里面的error msg="Not in GZIP format"怎么不行呢

    2017-07-26
    赞同
    回复
  • maq
    maq
    2017-07-26
    var str = '<?xml version="1.0" encoding="GBK"?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><soap:Header><out:system xmlns:out="http://www.ylzinfo.com/"></out:system></soap:Header><soap:Body><soap:Fault><faultcode>600</faultcode><faultstring><error msg="Not in GZIP format" /></faultstring></soap:Fault></soap:Body></soap:Envelope>';
    var m = str.match(/<faultcode>(\d+)<\/faultcode>/);
    console.log(m[1]);


    2017-07-26
    赞同
    回复
  •  john
     john
    2017-07-26

    哥,你教教我怎么用正则匹配,比如我只要获取<faultcode>600</faultcode>这里面的值600

    2017-07-26
    赞同
    回复
  • maq
    maq
    2017-07-26

    貌似小程序的 js 里并没有内建的 XML 解析器,你可以考虑自己找一个纯 js 版本的 XML 解析器,或者索性用字符串查找匹配(正则匹配是很有效的方法)。

    2017-07-26
    赞同
    回复