首页 > 解决方案 > 如何从获取请求中返回原始 XML?

问题描述

我必须从服务器检索 XML 数据。我正在使用 Fetch,因为我需要一种兼容异步/等待的方式来发出 HTTP 请求。

但是,在通过 fetch 检索数据时使用 resp.text() 会导致它转义所有引号和换行符。

结果应该是这样的:

<?xml version="1.0" encoding="UTF-8"?><data xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <value var_id="v04" xsi:type="ELEMENT">hello</value>
</data>

这就是它的实际样子:

"<?xml version=\"1.0\" encoding=\"UTF-8\"?><data xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">\n      <value var_id=\"v04\" xsi:type=\"ELEMENT\">hello</value>\n</data>\n"

无论如何,我可以防止这种情况并接收原始 XML?或者,无论如何要将其解析回其原始形式?谢谢。

标签: node.jsxmlfetch-api

解决方案


在 node-fetch 中做.text的只是:

    return consumeBody.call(this).then(buffer => buffer.toString());

这实际上是 .text 的源代码

这只是一个节点Buffer#toString()- 它不会以一种或另一种方式逃避。

Node.js 在打印它们之前会转义字符串,以便您可以使用它们并复制粘贴它们。

请放心 - 这只是一个 UI 可见性功能 - 而不是实际的文本转义更改 :)


推荐阅读