使用parseString()时,节点xml2js返回'undefined'

时间:2013-11-20 23:42:22

标签: javascript xml node.js

我在其他地方使用这个软件包并且工作得很好,但是在一个特定的例子中,有一个XML文件我得到“未定义”的错误。

示例:

fs.readFile('./XML/theXMLfile13mb.xml', 'ascii', function(err,data){
    if(err) {
        console.log("Could not open file " + err);
        process.exit(1);
    }

    parseString(data, function (err, result) {
        console.log(result); // Returns undefined
        var json1 = JSON.stringify(result); // Gives an error
        var json = JSON.parse(json1);

The xml2js docs没有真正提到这可能是什么/这可能意味着什么。我尝试过使用其他XML文件,但它们运行正常。这个特殊的XML文件并不比其他文件大,也不会显得更少(它在浏览器中打开很好,所有数据都按预期显示)。

关于如何解决此问题的任何想法?

1 个答案:

答案 0 :(得分:0)

您需要将data从Buffer转换为String,请使用:

parseString(data.toString(), function (err, result) {

而不是:

parseString(data, function (err, result) {