سؤال

أملك xsi:nil="true" في طلب الصابون الخاص بي. ماذا يعني؟ كيف يمكنني تمرير القيمة على ذلك؟

أي مساعدة موضع تقدير

هل كانت مفيدة؟

المحلول

لإزالتها قم بتعيين القيمة في كائن البيانات :: Data إلى ArrayRef بدلاً من undef. قل أن لديك حقل 1 كمفتاح الخاص بك ، فإن كائن بيانات الصابون سيبدو:

*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" />. الحل في بيرل.

نصائح أخرى

تشير سمة nillable إلى أن العنصر الموجود في السمة موجود ولكن ليس له قيمة ، على غرار NULL في معظم لغات البرمجة.

إذا كنت ترغب في تعيين قيمة للعنصر الذي يمكنك القيام بذلك ، ولكن عليك إزالة xsi:nil سمة أولا ، وإلا ستحصل على خطأ.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top