2016-09-13 82 views
3

我需要發送一個XML這種格式:SOAP - PHP可以更改'ns1'標籤名稱?

<soapenv:Body> 
<loc:amount> 
    <loc:user>user_name</loc:user> 
    <loc:charge> 
    <description>description_text</description> 
    </loc:charge> 
</loc:amount> 

我生成soapVar XML主體,但我不能改變 「NS1」 標籤。 來源:

$var = '<loc:amount> <loc:user>user_name</loc:user> <loc:charge> <description>description_text</description> </loc:charge> </loc:amount>';  
$params[0] = new SoapVar($var,XSD_ANYXML,'amount','http://mydomain.cm'); 

和標題結果是這樣的:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://mydomain.cm" xmlns:ns2="http://header_domain.cm"> 

我需要這樣的結果:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:loc="http://mydomain.cm" xmlns:ns2="http://header_domain.cm"> 

有可能改變 'NS1' 標籤 '祿'?

謝謝

回答

1

命名空間的前綴名稱是無關緊要的;只有通過它們綁定到一個名稱空間值,它們才能產生意義。沒有一致的XML處理器會關心特定的名稱空間前綴名稱;你也不應該。

+0

好的,但它是一個API代碼,我需要的XML結果與示例相同,如果我有一個錯誤的響應,服務器錯誤。 – xandra

+0

你的評論表明你不明白我的答案。您要麼處理不符合要求的XML處理器(可能但不太可能),要麼就是誤解了您收到的錯誤。 – kjhughes

+0

@xandra:如果由於某種原因,對您來說很重要,您能不能改變XML字符串中的ns名稱,以便它與SoapVar生成的名稱相匹配? (即' ...') –