我试图在我的SOAP调用中生成以下XML:
<CResponse>
<ID>int</ID>
<Response Action="Apply">
<Question ID="$someint">
<Responses>
<Response ID="$someotherint" />
<Response ID="$yetanotherint" />
</Responses>
</Question>
</Response>
</CResponse>
Run Code Online (Sandbox Code Playgroud)
我可以创建大部分调用 - 我终于认识到嵌套数组是我的朋友 - 但我不知道如何将这些ID="$int"和Action="Apply"属性添加到各种标签中.我相信这很容易,但我无法理解.
TIA.
JJ.*_*JJ. 13
您应该能够使用以下语法添加属性:
array("foo" => array("_" => "cheese", "bar"=>"moo"));
Run Code Online (Sandbox Code Playgroud)
这应该产生以下XML
<foo bar="moo">cheese</foo>
Run Code Online (Sandbox Code Playgroud)
我不知道 JJ 建议的(有点奇怪)语法(根据您对问题的重新发布,它似乎不起作用),但您应该能够通过构建您想要的任何方式来塑造您的请求 xml或多或少“手动”使用SoapVar带有XSD_ANYXML编码的类。
有关如何执行此操作的示例,请参阅SoapVar 构造函数文档的此用户评论。
如果您需要构建的 XML 变得更加复杂,请考虑使用 SimpleXML 或 DOMDocument 来组装它,而不是直接编写它。
(我仍然觉得奇怪,应该没有更简单的方法来做到这一点,但到目前为止我还没有找到一种方法。)
编辑:刚刚在这个问题中找到了另一个使用 XSD_ANYXML 编码的示例,要求更简单的方法来做到这一点。不幸的是,到目前为止,没有人想出一种更简单的方法:/