node.js - 如何从获取请求中返回原始 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-fetch 中做.text
的只是:
return consumeBody.call(this).then(buffer => buffer.toString());
这实际上是 .text 的源代码
这只是一个节点Buffer#toString()
- 它不会以一种或另一种方式逃避。
Node.js 在打印它们之前会转义字符串,以便您可以使用它们并复制粘贴它们。
请放心 - 这只是一个 UI 可见性功能 - 而不是实际的文本转义更改 :)
推荐阅读
- php - 在 ACF 中继器块中创建和输出全局变量
- reactjs - 为什么 select() 在带有 ReactJS 的 Safari 上不起作用?
- android - 倒数计时器在滚动时无法正常工作?
- docker - Docker的镜像和主机不兼容
- json - 如何使用带有 JSON 源的 DataTable 显示数据?
- java - 为什么 Thread.sleep() 在 JavaFX 中不能相应地工作?
- css - 将 px 更改为 rem 后 font-size 没有响应
- sql - 类似于 SQL Server 2014 中的 DATEDIFF_BIG 的自定义代码
- python - 为什么不可能进行解构增强分配?
- php - 我仅将后端用作 API。我怎样才能看到我 dd()-ing 是什么?