如何从提取请求返回原始XML?

时间:2019-05-12 16:53:10

标签: node.js xml fetch-api

我必须从服务器检索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吗?另外,还是将其解析回其原始形式?谢谢。

1 个答案:

答案 0 :(得分:2)

在节点提取中执行.text确实可以做到:

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

这实际上是.text的源代码

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

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

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