首页 > 解决方案 > 如何从请求 API 获取响应数据 XML?

问题描述

我使用 axios 来制作它。发出请求 API 时如何接收 XML 格式的数据?

例子:

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

标签: javascriptxmlapiaxios

解决方案


在您的.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 节点的数组。每个节点都有属性tagName和。又是一个节点数组。attributeschildrenchildren

该库有非常方便的辅助函数,如“txml.simplify(dom)”会给你一个对象,它看起来更像一个数据对象。你可以查看npm上的 API 文档。

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


推荐阅读