gpt4 book ai didi

javascript - 在 javascript 中解析 UTF-8 XML

转载 作者:行者123 更新时间:2023-11-30 19:06:24 24 4
gpt4 key购买 nike

我正在尝试使用 Node 和 xpathxmldom 包在 javascript 中加载和解析一个简单的 utf-8 编码的 XML 文件。没有使用 XML namespace ,并且在转换为 ASCII 时解析相同的 XML。我可以在 VS Code 的调试器中看到字符串在每个字符之间嵌入了空格(肯定是由于错误地加载了 utf-8 文件)但是我找不到正确加载和解析 utf-8 文件的方法。

代码:

var xpath = require('xpath')
, dom = require('xmldom').DOMParser;

const fs = require('fs');

var myXml = "path_to_my_file.xml";

var xmlContents = fs.readFileSync(myXml, 'utf8').toString();

// this line causes errors parsing every single tag as the tag names have spaces in them from improper utf-8 decoding
var doc = new dom().parseFromString(xmlContents, 'application/xml');
var cvNode = xpath.select1("//MyTag", doc);

console.log(cvNode.textContent);

如果文件是 ASCII(textContent 具有正确的数据),代码工作正常,但如果是 UTF-8,则存在许多解析错误和 cvNodeundefined

在 node/javascript 中是否有解析 UTF-8 XML 的正确方法?我这辈子都找不到像样的例子。

最佳答案

当您在每个字母之间看到额外的空格时,这表明该文件实际上并未使用 utf-8 编码,而是使用了 16 位 unicode 编码。

试试 'utf16le'

有关支持的编码列表,请参阅 Buffers and Character Encodings .

关于javascript - 在 javascript 中解析 UTF-8 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58940574/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com