xml проблема парсера в alexa с использованием javascript - PullRequest
0 голосов
/ 17 февраля 2020
    var xml = require('XML-Parser-master');
        const fs = require('fs');
 var responseString = 'html string';

        var finalString="";


        var xmlDoc = new xml.DOM(xml.parse(responseString)); 

        const items =xmlDoc.document.getElementsByTagName("item");
        for (var i = 0; i < items.length ; i++) {
          const item = items[i];
          var name = (item.getElementsByTagName("name")[0]),
             status = (item.getElementsByTagName('status')[0]),
             device = (item.getElementsByTagName('device')[0]),
             probe = (item.getElementsByTagName('probe')[0]),
             message_raw = (item.getElementsByTagName('message_raw')[0]);

            finalString += "Il sensore "+name+ ", sul server "+device+ " del  "+probe+ " è nello stato"+status+". Il messaggio di errore è: "+ message_raw+". ";

        }

          });
           res.on('end', function(res)
            {
                const speechOutput = finalString;
                console.log("==> Answering: ",speechOutput); 
                mythis.emit(':tell', speechOutput);
            });

Проблема в том, что он возвращает «[объект объекта]», когда ему нужно добавить другую строку для имени, статуса, устройства, зонда и message_raw. Пример:

il sensore [объект Object], сервер sul [объект Object] del [объект Object] и nello stato [объект Object]. Il messaggio di errore è: undefined. "}

используется синтаксический анализатор: https://github.com/MauriceConrad/XML-Parser#readme

1 Ответ

0 голосов
/ 19 февраля 2020

После просмотра модуля XML Parse XML Parse npm docs модуля , похоже, что вам просто нужно установить переменную для свойства text объекта.

Например,

var name = (item.getElementsByTagName("name")[0]).text;
...