1
我想生成xml wsdl請求,具有像tem:sessionId
參數,但我的PHP代碼生成x:sessionId
。我不知道如何轉換x:
到tem:
SimpleXML文檔PHP添加孩子與TEM:標記姓名
結果,我需要:
<?xml version="1.0"?>
<x:Envelope xmlns:x="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/">
<x:Header/>
<x:Body>
<tem:GetServicesByProvider>
<tem:sessionId>890925</tem:sessionId>
<tem:ProviderId>29</tem:ProviderId>
<tem:mac/>
</tem:GetServicesByProvider>
</x:Body>
</x:Envelope>
這是我的PHP代碼
private function createXMLRequest($function, $params)
{
$xml = new \SimpleXMLElement('<x:Envelope xmlns:x="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/"><x:Header/></x:Envelope>');
$body = $xml->addChild('Body');
$f = $body->addChild($function, '');
foreach ($params as $param) {
$f->addChild($param['tag'], $param['text']);
}
return $xml;
}
,但它會產生這樣的:
<?xml version="1.0"?>
<x:Envelope xmlns:x="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/">
<x:Header/>
<x:Body>
<x:GetServicesByProvider>
<x:sessionId>890925</x:sessionId>
<x:ProviderId>29</x:ProviderId>
<x:mac/>
</x:GetServicesByProvider>
</x:Body>
</x:Envelope>
當我添加'tem:'到'addChild'方法時,它會自動刪除'tem:'。 –
@ 543310你確定你還包含正確的命名空間URL作爲第三個參數嗎?我在發佈之前測試了這段代碼,並且它產生了你想要的輸出。在這裏嘗試一下:https://3v4l.org/majj9 – IMSoP