У меня проблемы с отправкой массива с пространством имен:
У меня есть такой объект:
const body = {
stuff: 'stuff',
morestuff: 'morestuff',
products: [
{
sku: 100,
quantity: 1,
},
{
sku: 200
quantity: 2,
}
]
}
Мой метод похож на:
const wsdlOptions = {}; // I'll come to this later
const args = {
'tem:User': body.stuff,
'tem:Pass': body.morestuff,
'tem:Data': {
'tem:Shipment_Order_Detail_Request': body.products.map((product, index) => ({
'tem:Sku_Code': product.sku,
'tem:Quantity': product.quantity,
}))
},
};
soap.createClient(endpoint, wsdlOpsions, (error, client) => {
client.method((args, result) => {
console.log(result);
});
});
Чего я хочу добиться от XML, так это:
<tem:User>stuff</tem:User>
<tem:Pass>morestuff</tem:Pass>
<tem:Data>
<tem:Shipment_Order_Detail_Request>
<tem:Sku_Code>100</tem:Sku_Code>
<tem:Quantity>1</tem:Quantity>
</tem:Shipment_Order_Detail_Request>
<tem:Shipment_Order_Detail_Request>
<tem:Sku_Code>200</tem:Sku_Code>
<tem:Quantity>3</tem:Quantity>
</tem:Shipment_Order_Detail_Request>
</tem:Data>
Но я получаю вот это (Shipment_Order_Detail_Request без tem
: префикс)
<tem:User>stuff</tem:User>
<tem:Pass>morestuff</tem:Pass>
<tem:Data>
<Shipment_Order_Detail_Request>
<tem:Sku_Code>100</tem:Sku_Code>
<tem:Quantity>1</tem:Quantity>
</Shipment_Order_Detail_Request>
<Shipment_Order_Detail_Request>
<tem:Sku_Code>200</tem:Sku_Code>
<tem:Quantity>3</tem:Quantity>
</Shipment_Order_Detail_Request>
</tem:Data>
Я пытался добавить
ignoredNamespaces: {
namespaces: [],
override: true,
},
на мой wsdlOptions
, и он изменился на это:
<tem:User>stuff</tem:User>
<tem:Pass>morestuff</tem:Pass>
<tem:Data>
<tns:Shipment_Order_Detail_Request>
<tem:Sku_Code>100</tem:Sku_Code>
<tem:Quantity>1</tem:Quantity>
</tns:Shipment_Order_Detail_Request>
<tns:Shipment_Order_Detail_Request>
<tem:Sku_Code>200</tem:Sku_Code>
<tem:Quantity>3</tem:Quantity>
</tns:Shipment_Order_Detail_Request>
</tem:Data>
Теперь есть префикс, но это tns
, а не tem
.
Как мне достичь своей цели?
Заранее спасибо,