如何将第二个命名空间添加到SOAP信封标记中?

时间:2014-03-07 11:08:21

标签: php xml soap

我尝试使用PHP的DOMDocument类创建SOAP消息。我有一个原始的XML示例,需要从一个与以下内容匹配的信封开始:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v1="http://example.url/v1">

为了创造这个,我一直在尝试:

$xml = new DOMDocument('1.0');
$env = $xml->createElementNS('http://schemas.xmlsoap.org/soap/envelope', 'soapenv:Envelope');
$env->setAttributeNS('http://www.w3.org/2000/xmlns', 'xmlns:v1', 'http://example.url/v1');

此时(使用PHP控制台),我收到一条未被捕获的DOMException,其中包含消息&#34; Namespace Error&#34;。

我非常擅长手工制作SOAP请求,所以我毫不怀疑我误解了一些基本的东西。有人能指出我正确的方向吗?

干杯

1 个答案:

答案 0 :(得分:0)

修正了一个非常简单的答案。

原来http://www.w3.org/2000/xmlns/ 需要这个尾随斜杠。