我正在尝试通过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解析器仍在运行,而在一个更简单的示例中,它可以正常工作。我将msinfo32的输出保存为xml格式。
10分钟后输出为RangeError:已超过最大调用堆栈大小
从"msinfo32 /nfo C:\TEMP\TEST.NFO“生成输出
发布于 2012-05-14 17:04:31
只需确保xml文档在此处有效:
http://www.w3schools.com/xml/xml_validator.asp
如果是并且失败了,我建议在他们的github页面上打开一个问题
您可以在npm上搜索其他模块
我个人使用过xml2js,没有任何问题
发布于 2012-05-23 15:31:39
在"ucs2“中的msinfo32输出中,错误的编码导致了问题。Xmldom解析器工作得很好,即使它需要几分钟来解析整个文件。
我使用xml-splitter提取要解析的xml分支。
发布于 2013-09-27 04:03:20
我看到你写的是length而不是length...也许这就是问题所在!
https://stackoverflow.com/questions/10580039
复制相似问题