如何使用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)
- 暂无评论