Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 节点xml2js正在返回';未定义';使用parseString()时_Javascript_Xml_Node.js - Fatal编程技术网

Javascript 节点xml2js正在返回';未定义';使用parseString()时

Javascript 节点xml2js正在返回';未定义';使用parseString()时,javascript,xml,node.js,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

我在其他地方使用了这个包,它工作得很好,但是在一个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);
不要真的提到这是怎么可能的/这可能意味着什么。我尝试过使用其他XML文件,它们工作得很好。这个特定的XML文件不比其他文件大,也不显得不太灵活(它在我的浏览器中打开得很好,所有数据都按预期显示)


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

您需要将
数据
从缓冲区转换为字符串,请使用以下方法:

parseString(data.toString(), function (err, result) {
而不是:

parseString(data, function (err, result) {

确保XML具有100%的有效语法。还要验证文件编码。除了在浏览器中打开它并看到它正确加载而没有错误之外,我该如何做?通过XML验证器运行它(尽管我认为大多数浏览器应该指示非常无效的XML)。您可以在
parseString
函数的回调中看到
err
参数。它在
console.log
上说了什么?猜测您的文件是否正在加载到数据中?删除
ascii
编码,默认
utf8
就足够了。