通过CGI打印XML / XSLT数据

时间:2012-09-13 11:33:36

标签: xml xslt cgi

我有一个Perl-CGI脚本,它以XML格式从服务器获取数据。数据收集在变量中。 我创建了一个XSLT表并修改了该变量以在其中添加XSLT标记。 但是,它无法加载XSLT文档。

以下是代码段:

my $retData = &postData($qStr); <--- Gets data from server
my @val = split("\n",$retData);
$curr_index = 0;
my @temp_arr;
for my $temp (@val) {
   if ($curr_index == 0) {
      push(@temp_arr,$temp);
        push(@temp_arr,"\<\?xml-stylesheet type\=\"text\/xsl\" href\=\"myquery.xsl\"\?\>");
       } else {
         push @temp_arr,$temp;
       }
      $curr_index++;
    }
    @val = @temp_arr;

   my $message = join ("\n",@temp_arr);
   print "Content-Type: text/xml\r\n";
   print "\r\n";
   print "$message\n";

使用FF浏览器打开时收到此错误消息:

加载样式表时出错:加载XSLT样式表时出现网络错误:http://&amp; ltmachine_name&amp; gt / cgi-bin / myquery.xsl

1 个答案:

答案 0 :(得分:0)

最后它奏效了。

在XSL文件之前添加“/”

push(@temp_arr,“\&lt; \?xml-stylesheet type \ = \”text / xsl \“href \ = \”/ myquery.xsl \“\?&gt;”);

根据Apache设置

将XSK文件复制到'DocumentRoot'

就我而言,'DocumentRoot'设置为'/ var / www / html'