读取由nodejs中的2个端点定义的文件的一部分

Reading a portion of the file defined by 2 end points in nodejs

我是 nodeJs 的新手,但我已经爱上它了。 我有以下 data.xml 文件。

<data>
 <student>
  <age>16</age>
  <name>Bill</name>
 </student>
 <teacher>
  <age>33</age>
  <name>Priyanka</name>
 </teacher>
</data>

我想从这个文件中读取学生的详细信息。 我探索了 fs.readStream、fs.readFile,但有些无法正确处理。 Readline 可能是一个解决方案(我不确定),但是如果 xml 格式不正确怎么办?

提前致谢。

您无法解析无效 xml- 所以修复它。然后你可以使用 xml2js(通过 运行 npm install xml2js 安装)节点模块和此代码:

var fs= require('fs');
var parseString = require('xml2js').parseString;

fs.readFile('./data.xml', 'utf8', function read(err, data) {
    if (err) {
        throw err;
    }

    parseString(data, {trim: true}, function (err, result) {
        if (err){
            throw err;
        }
        console.dir(result);
    });
});

如果您不修复 xml,代码当然会抛出异常(教师年龄的结束标记无效)。 您应该检查 xml 文件的编码,为简洁起见,我假定为 utf8。