soap请求中的xsi:nil =“true”

时间:2010-10-26 15:22:04

标签: php soap request xml-nil

我的肥皂请求中有xsi:nil="true"。这是什么意思?我怎样才能传递价值?

感谢任何帮助

2 个答案:

答案 0 :(得分:3)

nillable属性表示属性所在的元素存在但没有值,类似于大多数编程语言中的NULL

如果您想为元素指定值,则必须先删除xsi:nil属性,否则会出错。

答案 1 :(得分:0)

要删除它,请将Soap :: Data对象中的值设置为arrayref而不是undef。 假设您将Field1作为密钥,那么Soap Data对象将如下所示:

*bless( {
     '_name' => 'Field1',
     '_signature' => [],
     **'_value' => [
                   undef
                 ],**
     '_prefix' => 'm',
     '_attr' => {
                  'id' => '1219615'
                }
 }, 'SOAP::Data' )*

,得到的xml将是:< m:Field1 xsi:nil = true id =“1219615”/> 现在如果将对象更改为:

*bless( {
     '_name' => 'Field1',
     '_signature' => [],
     **'_value' => [],**
     '_prefix' => 'm',
     '_attr' => {
                  'id' => '1219615'
                }
}, 'SOAP::Data' )*

您将获得所需的输出< m:Field1 id =“1219615”/> 。 解决方案是perl。