请求头支持xml格式的 : body-parser-xml
1.接收的xml格式 转为josn 并获取其中的字段
var xmljosnstr=JSON.stringify(req.body);
var xmljosn =JSON.parse(xmljosnstr);
console.log(xmljosn);
console.log(xmljosn["MPD"]["$"]["type"]);
2.读取本地xml二进制流->josn 和本地josn二进制流-<josn
router.post('/xml', function(req, res, body) {
var fs = require("fs");
var file="./public/doc/test.xml";
var result=fs.readFileSync(file);//byte[]
var resultstr= ParseString(result);//xml转为josn后
3.fxp简单的 xml字符串->josn
router.get('/', function(req, res, next) {
var xml_string ='<user><name>ajanwu</name><age>12</age></user>';
console.log(xml_string);
const fxp =require("fast-xml-parser");
const xml2josn=fxp.parse(xml_string);
console.log( xml2josn);
res.send('xml2josn:'+JSON.stringify(xml2josn));
});
var express = require('express');
var router = express.Router();
var bodyParser = require('body-parser');
require('body-parser-xml')(bodyParser);//支持解析xml格式
const xml2js = require('xml2js');
//支持解析xml格式 的具体设置
//var app = express();
router.use(bodyParser.xml({
xmlParseOptions: {
normalize: false, // Trim文本节点内的空白
normalizeTags: false, // 将标记转换为小写
explicitArray: true // 只有在大于1时才将节点放入数组
}
}));
//1.接收的xml格式 转为josn 并获取其中的字段
router.post('/xml2', function(req, res, body) {
var xmljosnstr=JSON.stringify(req.body);
var xmljosn =JSON.parse(xmljosnstr);
console.log(xmljosn);
console.log(xmljosn["MPD"]["$"]["type"]);
//var typestr=xmljosn.get("mpd");
// console.log( "typestr:"+typestr );
res.send(xmljosn);
});
//2.读取本地xml二进制流->josn 和本地josn二进制流-<josn
router.post('/xml', function(req, res, body) {
var fs = require("fs");
var file="./public/doc/test.xml";
var result=fs.readFileSync(file);//byte[]
var resultstr= ParseString(result);//xml转为josn后
console.log(resultstr);
//读取本地josn
// var fs=reauire('fs');
// var file="d:\\0.json";
// var result=JSON.parse(fs.readFileSync( file));
//操作对象
var xml_string = resultstr;
// '<response id="1" shop="aldi">'
// + 'This is some other content'
// + '<who name="james">James May</who>'
// + '<who name="sam">'
// + 'Sam Decrock'
// + '<location>Belgium</location>'
// + '</who>'
// + '<who name="jack">Jack Johnsen</who>'
// + '<games age="6">'
// + '<game>Some great game</game>'
// + '<game>Some other great game</game>'
// + '</games>'
// + '<note>These are some notes</note>'
// + '</response>';
console.log( "xml_string:"+xml_string );
res.send(xml_string);
// var xmlreader = require("xmlreader");
// xmlreader.read(xml_string, function(errors, response){
// if(null !== errors ){
// console.log(errors)
// return;
// }
// console.log( response.response );
// res.send(response.response);
// console.log( response.response.text() );
// });
});
//2.1 xml转josn 可以读取byte[]文件流
function ParseString(data){
var xmlParser = new xml2js.Parser({explicitArray : false});
var resData = null;
xmlParser.parseString(data, function(err, result) {
if(err){
resData = 'error';
}
else{
resData = result;
}
});
return resData;
}
/* GET users listing. */
//3.fxp简单的 xml字符串->josn
router.get('/', function(req, res, next) {
var xml_string ='<user><name>ajanwu</name><age>12</age></user>';
console.log(xml_string);
const fxp =require("fast-xml-parser");
const xml2josn=fxp.parse(xml_string);
console.log( xml2josn);
res.send('xml2josn:'+JSON.stringify(xml2josn));
});
module.exports = router;