怎么解析request请求返回来的数据
发布于 7 年前 作者 minjin 17479 次浏览 最后一次编辑是 6 年前 来自 问答

返回的是这样的,比如我只需要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>

6 回复

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

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

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]);

太谢谢你了

正则表达式写法不一样。

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

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

回到顶部