3

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

任何帮助表示赞赏

4

2 回答 2

3

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

如果你想给元素赋值,你可以这样做,但是你必须先删除xsi:nil属性,否则你会得到一个错误。

于 2010-10-26T16:02:58.527 回答
1

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

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

如果您将对象更改为: < m:Field1 xsi:nil=true id="1219615" />现在生成的 xml 将是:

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

You will get the desired output < m:Field1 id="1219615" />. The solution is in perl.

于 2012-12-26T05:59:07.327 回答