我建立一个使用XSL样式表一个网站,和我建立了有用的功能一个小型图书馆的一个实用程序样式表,其他表导入使用
<xsl:import href="util" />
在每一个片的顶部。 这并不是谷歌浏览器的工作,因为它不支持XSL:进口呢。 可有人请写信给我,我可以在服务器端将读取的XSL运行一个样式表:进口线和其发送到客户端之前导入相关的样式表?
我建立一个使用XSL样式表一个网站,和我建立了有用的功能一个小型图书馆的一个实用程序样式表,其他表导入使用
<xsl:import href="util" />
在每一个片的顶部。 这并不是谷歌浏览器的工作,因为它不支持XSL:进口呢。 可有人请写信给我,我可以在服务器端将读取的XSL运行一个样式表:进口线和其发送到客户端之前导入相关的样式表?
我会做这样的事情;下面,将结合样式服务器端,它就会到Chrome之前。 第一步是在地方,因为xsl:import
是不一样的与进口替代样式的所有地方。
xsl:import
与xsl:include
(进口优先权并不适用于xsl:include
,所以你可能需要改变你的代码,并使用优先级,而不是) <xsl:template match="node()">
<xsl:copy>
<xsl:copy-of select="@*"/>
<xsl:apply-templates select="node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="xsl:include">
<!-- you'll probably want to be a bit more restrictive here -->
<xsl:copy-of select="document(@href)/xsl:stylesheet/*" />
</xsl:template>
更新:刚一说明:在Chrome有错误出现在Safari浏览器了。
你可以用libxml2和模块的libxslt做在Python ...不是为你做你所有的工作,但开始是这样的:
import libxml2, libxslt
styledoc = libxml2.parseFile("page.xsl")
style = libxslt.parseStylesheetDoc(styledoc)
doc = libxml2.parseFile("somefile.xml")
result = style.applyStylesheet(doc, None)
然后,只需服务于东西退了出去。
尝试在PHP中是这样的:
<?php
$sXml = "<xml>";
$sXml .= "<testtag>hello tester</testtag>";
$sXml .= "</xml>";
# LOAD XML FILE
$XML = new DOMDocument();
$XML->loadXML( $sXml );
# START XSLT
$xslt = new XSLTProcessor();
$XSL = new DOMDocument();
$XSL->load( 'xsl/index.xsl', LIBXML_NOCDATA);
$xslt->importStylesheet( $XSL );
#PRINT
print $xslt->transformToXML( $XML );
?>
http://www.w3.org/TR/xslt#literal-result-element展示了如何编写一个XSL样式表,其将现有的XSL样式表与一个XSL样式表时,解决重复,XSL-命名空间问题<xsl:import>
开展扩大。
要小心,虽然,有关的区别<xsl:import>
和<xsl:include>
。