1

我正在尝试通过 IIS 中托管的 Node.js 加载和解析本地 XML 文件。我使用 fs readFile 读取字符串并使用xmldom 模块对其进行解析。它一直工作到文件大小很小(几 kb),但如果我尝试加载 3Mb xml,它会失败。

哪个其他用于 windows 的 xml 模块可以执行得更好?

这是我的代码

var fs = require('fs');
fs.readFile('C:\\Temp\\TEST.xml', 'ascii', function(err,data){
    if(err) {
        console.log("Could not open file"+ err);
        process.exit(1);
    }
    var Dom = require('xmldom').DOMParser;
    var doc = new Dom().parseFromString(data.substring(2,data.lenght));
    console.log(doc.childNodes[0].localName);
});

5 分钟后,解析器仍在运行 xml,而在一个更简单的示例中它可以工作。我以 xml 格式保存了 msinfo32 的输出

10 分钟后输出是 RangeError: Maximum call stack size exceeded

输出是从“msinfo32 /nfo C:\TEMP\TEST.NFO”生成的

4

3 回答 3

0

msinfo32 在“ucs2”中输出,错误的编码导致了问题。Xmldom 解析器工作正常,即使解析整个文件需要几分钟。

我使用xml-splitter提取要解析的 xml 分支

于 2012-05-23T07:31:39.060 回答
0

只需确保 xml 文档在此处有效:

http://www.w3schools.com/xml/xml_validator.asp

如果是并且失败了,我建议在他们的 github 页面上打开一个问题

你可以在npm上搜索其他模块

我个人使用xml2js没有问题

于 2012-05-14T09:04:30.740 回答
-1

我看到你写的是长度而不是长度......也许这就是问题所在!

于 2013-09-26T20:03:19.953 回答