最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

如何使用node.js下载ISO 8859

运维笔记admin22浏览0评论

如何使用node.js下载ISO 8859

如何使用node.js下载ISO 8859

对于utf-8编码的XML文件,使用http模块的get方法没有问题。但是,当XML文件的编码设置为iso8859-9时,字符未正确显示。我们能做什么?

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

var xpath = require('xpath');
var dom = require('xmldom').DOMParser;

var router = express.Router();

getXml = function(resUrl, callback) {
  http.get(resUrl, (res) => {
    res.setEncoding('utf8');
    let data = '';

    // A chunk of data has been recieved.
    res.on('data', (chunk) => {
      data += chunk.toString();
    });

    // The whole response has been received. Print out the result.
    res.on('end', () => {
      callback(data);
    });
  }).end();
}
/* GET home page. */

router.get('/', function(req, res, next) {
  getXml('http://server/xmlfile.xml', function(result) {
    var doc = new dom().parseFromString(result);
    var nodes = xpath.select("//person", doc);

    let str = '';
    nodes.forEach(element => {
      str += element.attributes.getNamedItem("name").value + "<br/>";
    });

    res.render('index', {
      title: 'Express' + str
    });
  });
});

module.exports = router;
回答如下:

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

var xpath = require('xpath');
var dom = require('xmldom').DOMParser;

var router = express.Router();

getXml = function(resUrl, callback) {
  http.get(resUrl, (res) => {
    res.setEncoding('utf8');
    let data = '';

    // A chunk of data has been recieved.
    res.on('data', (chunk) => {
      data += chunk.toString();
    });

    // The whole response has been received. Print out the result.
    res.on('end', () => {
      callback(data);
    });
  }).end();
}
/* GET home page. */

router.get('/', function(req, res, next) {
  getXml('http://server/xmlfile.xml', function(result) {
    var doc = new dom().parseFromString(result);
    var nodes = xpath.select("//person", doc);

    let str = '';
    nodes.forEach(element => {
      str += element.attributes.getNamedItem("name").value + "<br/>";
    });

    res.render('index', {
      title: 'Express' + str
    });
  });
});

module.exports = router;

与本文相关的文章

发布评论

评论列表(0)

  1. 暂无评论