NodeJS + SOAP - Library正在添加方法名称作为标记

时间:2016-08-08 23:30:58

标签: xml node.js soap

我正在尝试使用Nodejs使用SOAP服务,我在Node中很新,这就是我所拥有的:

var soap = require('soap');
var url = 'https://example.com?wsdl';

var params = 
{
    "ns1:requestEmisionOperativa": 
    {
        codigoFormatoImpresion: "1",
        ordenServicio: {}
    }
};


soap.createClient(url, function(err, client) 
{
    var soapHeader = {"ns1:requestHeader": 
                        {
                            idToken: "xxx",
                            "codigoUsuario": "xxx"
                        }};
client.addSoapHeader(soapHeader);

client.emitir(params, function(err, result) 
{
    console.log(result);
});
});

生成的XML是:

<soap:Envelope xmlns:soap="http://example.com/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xmlns:tns="http://example.com/" xmlns:ns1="http://example.com/" xmlns:ns2="http:/example.com/method">
   <soap:Header>
   <ns1:requestHeader>
      <idToken>xxx</idToken>
      <codigoUsuario>xxx</codigoUsuario>
      </ns1:requestHeader>
   </soap:Header>
   <soap:Body>
      <emitir>
          <ns1:requestEmisionOperativa>
             <codigoFormatoImpresion>1</codigoFormatoImpresion>
             <ordenServicio>
             </ordenServicio>
          </ns1:requestEmisionOperativa>
      </emitir>
   </soap:Body>
</soap:Envelope>

正文的根标记是“emitir”,它是方法名称。如果我删除(手动)这些标签,服务将按预期工作,但我不能以编程方式删除它。另外我不确定什么我要google(SO建议没有答案,“删除方法名称为root标签+ soap + nodejs”没有给出任何好结果)

所以,问题是:如何将方法名称删除为根标记?

0 个答案:

没有答案