在nodejs中读取xml文件

时间:2014-11-05 09:32:14

标签: node.js

我有一个文件localy,结构如下:

<?xml version='1.0' encoding='UTF-8'?>
<foxydata>
<store_version>2.0</store_version>
<result>ERROR</result>
<messages>
<context>2008</context>
<message>Transaction Not Found (transaction_id:25)</message>
</messages>
</foxydata>

我想读取该文件并将其返回给浏览器,因此我的代码如下:

options = 
    encoding = 'UTF8'

fs.readFileSync(filepathXML, options, (err, data) ->
  throw err  if err
  return data
)

我可以读取文件,但浏览器上的结果如下:

2.0SUCCESSTransaction Found

我知道是什么导致了这个问题或者如何读取xml文件,我应该在readFile上定义其他内容吗?

2 个答案:

答案 0 :(得分:2)

readFileSync中没有第三种选择。也许你的意思是readFile

1

    var fs = require('fs');
    console.log(fs.readFileSync('./test.xml', {encoding: 'utf-8'})); 

2

    var fs   = require('fs');
    var http = require('http');

    http.createServer(function (req, res) {
      res.setHeader('Content-Type', 'text/xml');
      res.end(fs.readFileSync('./test.xml', {encoding: 'utf-8'}));
    }).listen(8811);

3

    var express = require('express'),
        app     = express();

    app.get('/', function (req, res) {
      res.set('Content-Type', 'text/xml');
      res.send(fs.readFileSync('./test.xml', {encoding: 'utf-8'}))
    })

    app.listen(3000);

答案 1 :(得分:0)

fs = require('fs');
var parser = require('xml2json');

fs.readFile( './data.xml', function(err, data) {
    var json = parser.toJson(data);
    console.log("to json ->", json);
 });