2

我正在使用SOAP::Lite模块调用 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 代码添加此标签?

4

1 回答 1

0

使用 XML::Generator 对 CDATA 部分进行编码。然后放到相关的soap结构中。

于 2017-03-03T16:06:55.513 回答