node.js - 如何在 Node.js 中扩充和解码 XML?

标签 node.js zlib inflate

当我尝试在 Node 中使用 zlib 进行膨胀和解码​​时,出现错误“错误: header 检查不正确

const example = 'pZNBj9owEIX/Sm4+JcYQFrAIUgSqhLRtEWx72MvK6wys1cROPeNu+u/rBGg57O6lp0jj5/nevHGWqJq6lWWgF7uHnwGQkhIRPBln185iaMAfwP8yGr7t7wv2QtSi5BxBBw+ZVh4q12XaNTLPJ9z509PJu9ByMZmMeYidkPcMji3X534sKYm8eQ4EZ4KxpwtiayvoCjZlySY6MVb1Nv5BTRtxlrJGEYYfYpwF5OtY2rjucPjKEV2msO1Yst0U7Kla5CKfwiSdPefjNJ+rebq4Ox7TyUwvcq0Wo3keQVvEELlIylLBxiMxS0fTVIgHcSenuRyJR5Z8j1MMRsbZiCVdU1uU/VAFC95Kp9CgtKoBlKTlofx8L6NQqmuOt1faj++03pHTrmarZa+Wgzu/+p/UGyBVKVJLfttxeV78l+hgu9m52ujfSVnX7nXtQREUjHyIm/rkfAz7fc8iE0PFVOlxkMpgsQVtjgYqxq+Yy9OCanhocesEHSVr18SFGuyThU5puk59q1rXMcc9HFcfRq2l7nWxvIufV+erXUwSdEQ+eBUtOU+XAN5sfj57x+jf09vfZPUH'
const inflated = zlib.inflateSync(Buffer.from(example, 'base64')).toString('ascii')

使用https://www.samltool.com/decode.php我可以成功地对其进行充气和解码,因此输入不是问题。我是否在使用 zlib 时做错了什么,或者有没有办法在没有 zlib 的情况下做到这一点?

最佳答案

您可以使用inflateRawSync函数来膨胀 Xml,然后将跳过 header 检查。

const zlib = require("zlib");
const example = 'pZNBj9owEIX/Sm4+JcYQFrAIUgSqhLRtEWx72MvK6wys1cROPeNu+u/rBGg57O6lp0jj5/nevHGWqJq6lWWgF7uHnwGQkhIRPBln185iaMAfwP8yGr7t7wv2QtSi5BxBBw+ZVh4q12XaNTLPJ9z509PJu9ByMZmMeYidkPcMji3X534sKYm8eQ4EZ4KxpwtiayvoCjZlySY6MVb1Nv5BTRtxlrJGEYYfYpwF5OtY2rjucPjKEV2msO1Yst0U7Kla5CKfwiSdPefjNJ+rebq4Ox7TyUwvcq0Wo3keQVvEELlIylLBxiMxS0fTVIgHcSenuRyJR5Z8j1MMRsbZiCVdU1uU/VAFC95Kp9CgtKoBlKTlofx8L6NQqmuOt1faj++03pHTrmarZa+Wgzu/+p/UGyBVKVJLfttxeV78l+hgu9m52ujfSVnX7nXtQREUjHyIm/rkfAz7fc8iE0PFVOlxkMpgsQVtjgYqxq+Yy9OCanhocesEHSVr18SFGuyThU5puk59q1rXMcc9HFcfRq2l7nWxvIufV+erXUwSdEQ+eBUtOU+XAN5sfj57x+jf09vfZPUH'
const inflated = zlib.inflateRawSync(Buffer.from(example, 'base64')).toString('ascii');
console.log("Inflated:", inflated);

关于node.js - 如何在 Node.js 中扩充和解码 XML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60500151/

相关文章:

javascript - Mongoose 中的同步和异步与回调

node.js - 如何使用 SessionID 从 RedisStore (connect-redis) 获取 session 数据?

c - 无法提取根据 IETF RFC 1951 : "DEFLATE Compressed Data Format Specification version 1.3" 压缩的数据

javascript - 将数组中的对象传递到查询者列表选项中

javascript - 通过将字符串附加到对象来生成 javascript 对象名称

node.js - 使用 zlib 压缩多个文件

c++ - zlib 添加的各种类型的目的是什么,我该如何使用它们?

javascript - 膨胀来自 websocket API 的响应

android - 如何将 ListView 膨胀为 fragment

PHP - 调用未定义函数 http_inflate()