读取由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。
我是 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。