如何使用CGI Perl在HTML表中呈现xml内容

如何使用CGI Perl在HTML表中呈现xml内容,html,xml,perl,cgi,Html,Xml,Perl,Cgi,我试图使用CGI Perl在一个简单的HTML表中显示XML内容(这是一个SOAP请求)。但是,XML内容在内部被截断 表格单元格。有人能提出一个解决方案来正确地呈现XML吗 HTML页面 代码如下: use strict; use CGI; use CGI::Carp qw(fatalsToBrowser); my $qry = new CGI; &show_html(); sub show_html { $qry->header(); $qry->

我试图使用CGI Perl在一个简单的HTML表中显示XML内容(这是一个SOAP请求)。但是,XML内容在内部被截断 表格单元格。有人能提出一个解决方案来正确地呈现XML吗 HTML页面

代码如下:

use strict;

use CGI;
use CGI::Carp qw(fatalsToBrowser);

my $qry = new CGI;

&show_html();


sub show_html {
    $qry->header();
    $qry->start_html(-bgcolor=>'#FFFFFF', -title=>'Rendering XML');
    my $body = &display_page();
    print $body;

    $qry->end_html;
}

sub display_page {

    my $html = qq{
        <table border="1">
        <tr>
            <th> Key </th>
            <th>Value</th>
        </tr>
        <tr>
            <td> SOAP </td>
            <td>POST /Quotation HTTP/1.0 Host: www.demohost Content-Type: text/xml; charset=utf-8 Content-Length: nnn  <?xml version="1.0"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://www.demourl1/2001/12/soap-envelope" SOAP-ENV:encodingStyle="http://www.demourl2/2001/12/soap-encoding" >     <SOAP-ENV:Body xmlns:m="http://www.demourl3/quotations" >              <m:GetQuotation>          <m:QuotationsName>MiscroSoft</m:QuotationsName>       </m:GetQuotation>                  </SOAP-ENV:Body>      </SOAP-ENV:Envelope>
            </td>
        </tr>
        </table>
    };
    return $html;

}
使用严格;
使用CGI;
使用CGI::Carp qw(fatalsToBrowser);
my$qry=新的CGI;
&show_html();
子显示{
$qry->header();
$qry->start_html(-bgcolor=>'#FFFFFF',-title=>'Rendering XML');
我的$body=&显示页面();
打印$body;
$qry->end_html;
}
子显示页面{
我的$html=qq{
钥匙
价值
肥皂
POST/QUOTE HTTP/1.0主机:www.demohost内容类型:text/xml;charset=utf-8内容长度:nnn MiscroSoft
};
返回$html;
}

XML充满了像
这样的字符。在调用Perl子例程时,请不要使用符号
&
。自从17年前PerlV5.5发布以来,这一点就不正确了。这部分工作正常,仍然很少有字符从该元素中溢出。
use HTML::Entities;
my $html_encoded_string = encode_entities($raw_xml_string);
<td>[% raw_xml_string | html %]</td>