我正在尝试使用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”没有给出任何好结果)
所以,问题是:如何将方法名称删除为根标记?