Perl SOAP::Lite添加CDATA
我使用以下模块调用web服务:Perl SOAP::Lite添加CDATA,perl,cdata,soaplite,Perl,Cdata,Soaplite,我使用以下模块调用web服务: my $som = $soap->call('ns:xxx' => ( SOAP::Data->name('ns:data' => \SOAP::Data->value( SOAP::Data->name('username')->type('')->value($username), )
my $som = $soap->call('ns:xxx' =>
(
SOAP::Data->name('ns:data' =>
\SOAP::Data->value(
SOAP::Data->name('username')->type('')->value($username),
)
)
)
);
它不起作用。所以我使用SOAPUI工具调用web服务来查看xml结构
然后我在调试模式下运行代码(使用SOAP::Lite“debug”),请参阅创建的xml并与SOAPUI工具的xml进行比较。唯一的区别是SOAPUI xml包含如下CDATA标记:
<![CDATA[
xml
]]>
我搜索并发现CDATA用于防止特殊字符引起的错误
如何使用Perl代码添加此标记?使用XML::Generator对CDATA部分进行编码。然后将其放入相关的soap结构中。我创建了CDATA,但不幸的是,soap::Data->value()将字符“”替换为“类型应为:soap::Data->type('xml'=>$xml\U内容)”