相关疑难解决方法(0)

php SoapVar没有设置属性

我正在尝试为soap请求添加一些属性.上评分最高PHP.net评论(http://php.net/manual/en/soapvar.soapvar.php),并在这里这里的SO都说着同样的事情:

$param = array(
    "_" => 'value',
    'attrName' => 'attributeName'
);
$p = new SoapVar($param, SOAP_ENC_OBJECT);
Run Code Online (Sandbox Code Playgroud)

应该回来

<param attrName="attributeName">value</param>
Run Code Online (Sandbox Code Playgroud)

哪个会很棒,除非我运行那段代码,我得到这个XML:

<param>
    <_>value</_>
    <attrName>attributeName</attrName>
</param>
Run Code Online (Sandbox Code Playgroud)

这显然是错的.当然,我不是世界上唯一遇到这个问题的人吗?自2011年以来,关于这一点功能的文档是否发生了变化?

php soap

7
推荐指数
2
解决办法
2801
查看次数

获取 SoapVar 变量的 XML 作为字符串 - 没有 Web 服务(本地)?

考虑这个简单的代码片段:

<?php
# http://php.net/manual/en/soapvar.soapvar.php

$parm = array();
$parm[] = new SoapVar('123', XSD_STRING, null, null, 'customerNo' );
$parm[] = new SoapVar('THIS', XSD_STRING, null, null, 'selection' );
$parm[] = new SoapVar('THAT', XSD_STRING, null, null, 'selection' );
$out = new SoapVar($parm, SOAP_ENC_OBJECT);

var_dump($out);
?>
Run Code Online (Sandbox Code Playgroud)

在它的来源线程上,据称它会生成类似以下 XML 的内容:

<customerNo>123</customerNo>
<selection>THIS</selection>
<selection>THAT</selection>
Run Code Online (Sandbox Code Playgroud)

...但是,我唯一能看到的var_dump()是这样的:

object(SoapVar)#4 (2) {
  ["enc_type"]=>
  int(301)
  ["enc_value"]=>
  array(3) {
    [0]=>
    object(SoapVar)#1 (3) {
      ["enc_type"]=>
      int(101)
      ["enc_value"]=>
      string(3) "123"
      ["enc_name"]=>
      string(10) "customerNo"
    }
    [1]=> ...
Run Code Online (Sandbox Code Playgroud)

如何在不调用实际远程 Web 服务的情况下获取 SoapVar 对象的预期 XML?

php xml soap

1
推荐指数
1
解决办法
1万
查看次数

标签 统计

php ×2

soap ×2

xml ×1