如何从请求API获取响应数据XML?

时间:2020-10-18 02:10:04

标签: javascript xml api axios

我用axios做到了。发出请求API时如何以XML接收数据?

示例:

axios.get(/* URL */).then(response => {/* How to get data XML? */}).catch(err => {/* result */});

1 个答案:

答案 0 :(得分:1)

在您的.then回调中,response具有属性data,它是作为字符串的xml文档。许多人会使用此字符串,并使用内置在浏览器中的解析器对其进行解析,就像在最近的问题中所展示的那样: Reading local text file as XML

但是我建议使用解析器库,这些库提供了处理XML数据的更有效的方法。我的选择是txml。 您可以像这样将其放入文档中:

<script src="https://unpkg.com/txml@4.0.0/tXml.min.js"></script>

然后,当您像这样解析xml字符串时:

axios.get(/* URL */).then(response => {
   const dom = txml.parse(response.data);
}).catch(err => {/* result */});

常量dom是xml节点的数组。每个节点具有属性tagNameattributeschildrenchildren还是一个节点数组。

该库具有非常方便的辅助函数,例如“ txml.simplify(dom)”将为您提供一个对象,该对象看起来更像是数据对象。您可以在npm上查看API文档。

免责声明:我是txml的作者。