Perl SOAP::Lite添加CDATA

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), )

我使用以下模块调用web服务:

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内容)”