将XML文件作为JSON加载到NodeJS中

时间:2014-05-28 12:27:44

标签: javascript xml json node.js xml-parsing

我试图将一个XML文件作为JSON加载到我的nodeJS项目中并且已经发布了一些。 console.log(JSON.stringify(obj))会返回undefined值。

var returnJSONResults = function(baseName, queryName) {
     var XMLPath = "SomeFile.xml";
     var rawJSON = loadXMLDoc(XMLPath);
    function loadXMLDoc(filePath) {
        var fs = require('fs');
        var xml2js = require('xml2js');
        var json;
        try {
            var fileData = fs.readFileSync(filePath, 'ascii');

            var parser = new xml2js.Parser();
            parser.parseString(fileData.substring(0, fileData.length), function (err, result) {
            json = JSON.stringify(result);
            console.log(JSON.stringify(result));
        });

        console.log("File '" + filePath + "/ was successfully read.\n");
        return json;
    } catch (ex) {...}
 }
}();

我不确定我在这里做错了什么但它无法读取文件(但没有返回错误)或者不知道如何对其进行字符串化

日Thnx。

更新: 改变了parser.parseString,它现在正在运作。

fs.readFile(__dirname + '/'+ filePath, function(err, data) {
            parser.parseString(data, function (err, result) {
                console.log(result);
                console.log('XML converted to JSON');
                tempJSON = result;
            });
        });

2 个答案:

答案 0 :(得分:1)

看一下下面的runnable ...... 复制了你的代码。变化不多...... 有用... 我怀疑你的XML有错误....我创建了一个简单有效的XML ... 如果您在那里添加XML,我们可以进一步查看错误。 希望有所帮助。

可运行链接:Runnable Link Here

沙哈尔。

答案 1 :(得分:0)

在您的代码中,您似乎没有任何变量“obj”。形成你的代码我认为

console.log(JSON.stringify(json)); 

会奏效。