1

我有一个 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://<machine_name>/cgi-bin/myquery.xsl

4

1 回答 1

0

最后它奏效了。

在 XSL 文件前添加“/”

push(@temp_arr,"\<\?xml-stylesheet type\=\"text/xsl\" href\=\"/myquery.xsl\"\?>");

并根据 Apache 设置将 XSK 文件复制到“Doc​​umentRoot”

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

于 2012-09-14T14:24:26.280 回答