如何在XSLT中复制外部CSS和JavaScript

我有一个输出 HTML的XSL转换.在头元素中我有一个CSS文件参考.
<link rel="stylesheet" type="text/css" href="css/styles.css"/>

我想创建一个独立的HTML结果没有外部引用,因此我想包括外部CSS引用.为了防止代码重复,我不想将样式硬编码到XSLT模板中,所以我正在寻找一些XSLT命令来复制CSS文件文件内容.我知道xsl:include或xsl:import将不起作用,因为他们期望XSLT文件.也没有

<xsl:copy-of select="document('css/styles.css')"/>

因为它希望符合XML标准.

我也有一些JavaScript函数声明,我也想复制.

是否可以使用纯XSLT,或者是否需要对XSLT文件进行一些预处理(或HTML文件的后期处理)?

解决方法

XSLT 2.0提供了unparsed-text()函数,通过不是XML的URL读取文档.

在XSLT 1.0中,如果您不需要关于CSS的脚本,则可以使用以下内容将CSS文件与XML兼容.幸运的是,浏览器容忍HTML注释.

CSS

<!--/*--><root><![CDATA[<!--*/--> 
body
{
    margin: 0;
}
div > p
{
    background-color: yellow;
}
<!--/*-->]]></root><!--*/-->

XSLT

<style type="text/css">
    <xsl:value-of select="document('test.css')" disable-output-escaping="yes" />
</style>

相关文章

Css3如何实现鼠标移上变长特效?(图文+视频)
css3怎么实现鼠标悬停图片时缓慢变大效果?(图文+视频)
jquery如何实现点击网页回到顶部效果?(图文+视频)
css3边框阴影效果怎么做?(图文+视频)
css怎么实现圆角边框和圆形效果?(图文+视频教程)
Css3如何实现旋转移动动画特效