在NodeJS中将一些XML加载到JSON中

时间:2017-11-04 04:30:08

标签: json node.js xml converter

我是NodeJS的新手并试图找出如何从REST服务加载一些xml数据并将其转换为JSON,以便我可以将其加载到我的视图中。

我尝试使用Hapi API查询并将其加载到xml解析器中,然后将其转换为JSON

执行以下操作似乎正确加载了xml对象,并且在打印时它实际上显示了一些JSON。 这是否意味着我不再需要转换为JSON了?

const server = new Hapi.Server();
...
server.route({
    method: 'GET',
    path: '/',
    handler: function (request, reply) {
        Request.get('http://ws.seloger.com/search.xml?&idtt=2&idtypebien=2,1&ci=750056&pxmax=400000&tri=initial&naturebien=1,2&surfacemin=65search.xml?',
            function (error, response, body) {
            if (error) {
                throw error;
            }

            var parse = require('xml-parser');
            var inspect = require('util').inspect;    
            var obj = parse(body);
            console.log(inspect(obj, { colors: true, depth: 4 }));

请注意,显示的JSON也不是我想要的,即。使用attributeschildren等显示详细信息:

{ declaration: { attributes: { version: '1.0', encoding: 'UTF-8' } },
root: 
{ name: 'recherche',
    attributes: {},
    children: 
    [ { name: 'resume',
        attributes: {},
        children: [],
        content: '....' },

然而,寻找更像this的东西(可能只是一个不同的代表)

1 个答案:

答案 0 :(得分:0)

所以我发现我的问题似乎与解析器本身有关。使用这个,我得到了我需要的东西:

var parseString = require('xml2js').parseString;
parseString(body, function (err, jsonData) {
    reply.view('index', { result: body });
});