Firebase函数-JavaScript-getElementsByTagName不是函数

时间:2018-08-24 22:16:13

标签: javascript xml firebase soap google-cloud-functions

在我的工作中尝试从CashTill发出肥皂请求到应用程序。因为Soap对Android不友好,并且我已经使用Firebase,所以我决定在firebase函数中执行soap请求。我可以收到请求,然后返回页面,但是我希望能够在那里收集数据。我的问题是,当我尝试使用getElementsByTagName时,它指出该功能不存在。

const functions = require('firebase-functions');
const admin = require('firebase-admin');
var XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest;
var bodyParser = require('body-parser');
require('body-parser-xml')(bodyParser);

exports.GetArticlesInfo = functions.https.onRequest((request, 
response) => {
        var xmlhttp = new XMLHttpRequest();
        xmlhttp.open("POST", "0000.0000.0000.0000/soap/ITPAPIPOS");
        xmlhttp.setRequestHeader("Content-type","text/xml");
        // build SOAP request
        var sr =
        '<soapenv:Envelope ' ..... sensitve information ......
        '</soapenv:Envelope>';

        xmlhttp.onreadystatechange = function () {
            if (xmlhttp.readyState === 4) {
                if (xmlhttp.status === 200) {

                  GetArticles(this);

                }
            }
        }
        // Send the POST request
        xmlhttp.setRequestHeader('Content-Type', 'text/xml');
        xmlhttp.send(sr);
        // send request
        // ...

        function GetArticles(xml){
          var xmlDoc = xml.responseXML;
          response.send("jhere");

          var data = xmlDoc.getElementsByTagName("item");
          for(var i = 0; i < data.length;i++){
            var x = data;
            response.send(x[i].getElementsByTagName("ArticleName")[0].childNodes[0].nodeValue);

          }
        }

});

错误: TypeError:xmlDoc.getElementsByTagName不是一个函数     在GetArticles(/user_code/index.js:65:33)

0 个答案:

没有答案