我是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格式不正确怎么办?
提前致谢。
答案 0 :(得分:1)
你无法解析无效的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。