将一个XML文件导入到test.js文件中

3

我想使用Jest进行单元测试,将XML文件转换为JSON。我在我的文件夹中创建了一个example.xml文件,但我不知道如何在test.js文件中导入它。有人有想法吗?


请查看https://www.npmjs.com/package/xml2js以获取XML解析的相关信息。 - LostJon
1
我不相信那会起作用,错误发生在导入过程中...SyntaxError: Unexpected token '<' - doublejosh
2个回答

1
例如,如果你想加载./sample.xml
<retrieveCustomer><id>39399444</id></retrieveCustomer>

这是从文件加载的代码:
var fs = require('fs'),
    xml2js = require('xml2js');

var parser = new xml2js.Parser();
(async function () {

    fs.readFile(__dirname + '/sample.xml', function(err, data) {
        parser.parseString(data, function (err, result) {
            console.dir(result);
            console.log(typeof result);
            console.log('Done');
        });
    });
}())


这是打印结果:
$ node index.js
{ retrieveCustomer: { id: [ '39399444' ] } }
object
Done

你可能不需要将其作为对象导入(就像这里的parseString一样),但如果你想将其作为原始文件导入,你可以使用fs.readFile然后将输出流到你想要测试的程序。 require('file.xml')不起作用,因为它只能用于加载和运行JavaScript文件或读取和解析JSON文件。它不能用于加载其他文件格式。
希望这对你有所帮助!

不是我希望得到的答案,但这正是我预料中的。我正在处理一些没有经过测试就能运行的遗留代码。引入测试只是揭示了它存在的所有问题之一,即直接导入 XML 文件,并且如果你声明 '*xml' 全局类型,它可以与 TypeScript 一起工作 >.>总之,谢谢! - Sebastien De Varennes

0

如果您能提供一个变压器的示例,而不仅仅是链接到与常用变压器相关的问题,那将非常有帮助。 - Sebastien De Varennes

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接