我对 SOAP、PERL 以及我被要求做的几乎所有其他事情都很陌生,所以我希望有人能指出我正确的方向。
我已经实现了一个简单的 WCF 解决方案,并编写了一个 PERL 客户端,它使用 SOAP::lite 和 SOAP::Data 将“复杂数据结构”传递给解决方案。到目前为止,所有这些都运行良好,WCF 解决方案将数组视为数组,我能够很好地遍历服务器端的数组。
但是,我在尝试将数据元素附加到 PERL 端的数组时遇到问题。我有以下代码,它构建了我需要的数组,但我需要稍后在代码中向数组追加几行,我不知道该怎么做。
# build array of values
my $data= SOAP::Data->new
(name => 'array', value =>
[
SOAP::Data->new(name => 'elem:string', value => 'firststring'),
SOAP::Data->new(name => 'elem:string', value => 'secondstring'),
SOAP::Data->new(name => 'elem:string', value => 'thridstring')
]
)
->attr
(
{ 'xmlns:elem' => 'http://schemas.microsoft.com/2003/10/Serialization/Arrays','xmlns:i' => 'http://www.w3.org/2001/XMLSchema-instance'}
);
# create a new element
my $elem1 = SOAP::Data->new(name => 'elem:string', value => 'addedstring');
# try to add the element
push(@{$data->{array}},$elem1);
#.... send, catch, print.. bla bla bla
我运行的代码,WCF 服务看到的数组很好,但 $elem1 值实际上从未附加到 SOAP 信封。
任何帮助是极大的赞赏...