从xslt转换访问外部css样式表

时间:2015-01-08 20:45:53

标签: css xslt

我是一个编程爱好者,我从来没有很好地使用DOM,所以它是最好的;我肯定没有找到答案,因为它对于一个称职的程序员来说太明显了。

也就是说,互联网上的几个地方明确表示生成表格链接的xalt样式表(来自IBM,虽然我已经在网上看过其他人)

<?xml version="1.0"?>
<xsl:stylesheet
   version="1.0"
   xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"indent="no"/>
<xsl:template match="/products">
   <html>
      <head>
         <title>Cascading Style Sheet</title>
         <link rel="stylesheet" type="text/css" href="table.css" 
              title="Style"/>
      </head>
(...)

问题当然是。 。 。它实际上并没有起作用。 在用于Firefox或IE的DOM中检查元素会在那里显示CSS链接,但样式选项卡在文档中没有显示CSS。采用相同的CSS内联工作。在直接的html文档中使用外部样式表。生成与xslt样式表输出完全相同的代码,并且CSS不会导入到生成的文档中。

警告 - 到目前为止,我的.xml文件和.xsl文件位于不同的文件夹中,但我已将.css文件放在相同的文件夹中,以便进行检查,到目前为止这没有任何区别。< / p>

死码:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
  <xsl:variable name="context" select="commands/interactive/@context" /> 
  <xsl:variable name="output" select="commands/interactive/@output" /> 
  <xsl:variable name="css" select="commands/interactive/@css" />
  <!-- To Do: 'context' needs to be entered interactively -->
  <xsl:template match="/">
    <html>
    <head>
    <title><xsl:value-of select="commands/@application"/></title>
    <link rel="stylesheet" type="text/css" href="./{$css}" />
    </head>
    <body>
    (...)

另外,它在输出中正确填充./{$css},并且在文件被硬编码时以完全相同的方式失败。再次,当输出为内联CSS或完全相同的html时,工作很漂亮。所以我错过了一些DOM的细微差别我确定。

1 个答案:

答案 0 :(得分:1)

像所有非常简单的问题一样,几个小时后公开看起来像个白痴,这一切都汇集在一起​​。对于碰巧遇到相同问题的人,显然格式错误&lt; xsl:output ... /&gt;将允许其他所有内容加载合理(在IE / Firefox中),但即使给定正确的路径,css也将无法加载。

此外,任何相对路径都需要相对于xsl文件正在转换的xml文件,而不是xsl文件本身。两者之前都已检查过,但未在两者正确 - &lt; G&gt;时检查。

谢谢你 - Jonnan