0

我正在使用带有“PURE JAVASCRIPT”的 Fusion Chart,但具有我们想要在客户端的导出功能。所以 FusionChart 在客户端提供图表的 SVG 或 VML。我们希望将此 VML 或 SVG 合并到 XML 文件与 XSLT 样式表。所以到目前为止,我们希望将导出到 XML 功能引入我们的应用程序。

现在的问题是 SVG 只能被 Mozilla、chrome 理解,而对于 IE,它提供了 VML。所以客户端将获得包含 SVG 和 VML 的通用文件,但问题是 XSLT 中没有检测浏览器类型和版本的意思。我使用了 IE 条件注释,但它在 chrome、mozilla 中不起作用,并且不起作用在 IE 中。即使使用 javascript 也不起作用,我会想要 XSLT 变量中的 javascript 变量值,这将是不可行的,因为 XML 先于 javascript 呈现,所以我无法为所有浏览器提供通用 XML+XSLT 代码。因为我们想要将独立的 XML 提供给包含数据 + 图像的客户端。

对此的任何帮助将不胜感激。

<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="#stylesheet"?>
<!DOCTYPE doc [
<!ATTLIST xsl:stylesheet id ID #REQUIRED>]>
<doc>
<xsl:stylesheet id="stylesheet" version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
<xsl:template match="xsl:stylesheet" />
 <xsl:template match="/doc">
<html>
<head>
 <style>
  body{
  font-family: Arial, Verdana,Helvetica, sans-serif;
  }
  table{
  font-size: 11px;
  }
 th{
 background-color:#D1D2D4;
 }
 </style>
</head>
<body>
<br />
   <!-- detect browser here for getting SVG or VML if Mozilla,chrome then SVG->

<svg xmlns="http://www.w3.org/2000/svg"........> </svg>

 <!-- If IE <=8 then VML -->

 <br/>
 <table border="2" cellspacing="1" width="86%">
  <tr>
   <th>Category</th>
   <th>Hits</th>
   <th>Bytes</th>
   </tr>
  <tr>
   <td>IPAddress</td>
   <td>1818</td>
   <td>747.32 MB</td>
   </tr>
   <tr>
   <td>None</td>
   <td>1523</td>
   <td>27.82 MB</td>
   </tr>
 </table>
  </body>
 </html>
</xsl:template>
</xsl:stylesheet>
 </doc>

谢谢,阿莎科什蒂

4

1 回答 1

0

您始终可以使用 API - 将 SVG 作为字符串(在 IE6+ 或任何浏览器中)获取chart.getSVGString()。那会有帮助吗?

于 2013-05-02T08:29:32.497 回答