Php SoapClient:将NS添加到XML节点

Php SoapClient:将NS添加到XML节点,php,soap,xml-namespaces,Php,Soap,Xml Namespaces,我需要通过SoapClient发送一个复杂的xml 我正试图用“正确”的方法来完成它,方法是随请求发送一个参数数组 以下是我当前阵列的一个示例: $params = array("TestRequest" => array("NodeOne" => "Value1", "NodeTwo" => "Value2")); 它生成的xml如下所示: <TestRequest> <NodeOne>Value1</NodeOne> <

我需要通过SoapClient发送一个复杂的xml

我正试图用“正确”的方法来完成它,方法是随请求发送一个参数数组

以下是我当前阵列的一个示例:

$params = array("TestRequest" => array("NodeOne" => "Value1", "NodeTwo" => "Value2"));
它生成的xml如下所示:

<TestRequest>
   <NodeOne>Value1</NodeOne>
   <NodeTwo>Value2</NodeTwo>
</TestRequest>
<ord:TestRequest>
   <NodeOne>Value1</NodeOne>
   <NodeTwo>Value2</NodeTwo>
</ord:TestRequest>

价值1
价值2
但是,我需要将NS添加到“TestRequest”部分。它需要如下所示:

<TestRequest>
   <NodeOne>Value1</NodeOne>
   <NodeTwo>Value2</NodeTwo>
</TestRequest>
<ord:TestRequest>
   <NodeOne>Value1</NodeOne>
   <NodeTwo>Value2</NodeTwo>
</ord:TestRequest>

价值1
价值2
我已经竭尽全力尝试我能想到的一切,搜索google和stack都没有用。是的,我试过在数组中键入“ord:TestRequest”


如果有人是PHP中的SoapClient专家,并且能够提供帮助,我将永远感激

好吧,在经历了很多头痛之后。。。要做到这一点,最简单的方法不是我喜欢的方法

我最终手动编写了一个XML,如下所示:

$xml = '<ord:TestRequest>
   <NodeOne>Value1</NodeOne>
   <NodeTwo>Value2</NodeTwo>
</ord:TestRequest>';
我的XML的结构与发出SoapRequest一样,然后我使用了SoapClient\uuu doRequest()方法


重要的是,当您使用此方法时,您不能使用您的wsdl自动生成xml,因为您已经这样做了,所以请确保您的soap连接中的wsdl为空。

重要注意:我遗漏了完整的xml,如果您使用此方法来引用同一问题,请访问SoapClient:\uu doRequest()在php.net学习如何构建整个类