你能帮助我吗,这是我在XSLT上的第一次经历:
我需要传递doctype-system
参数:
您能验证我的XSLT是否正确吗?
<?xml version='1.0'?>
<xsl:stylesheet version="1.0" xmlns:xsl="w3.org/1999/XSL/Transform">
<xsl:output method='xml' indent='no' version='1.0' encoding='utf-8' doctype-public='xxx' doctype-system="{$pURL}" />
<xsl:strip-space elements=""/>
<xsl:param name="pURL" select="'127.0.0.1:8080/dtd/?param'"/>
;
<xsl:template match="/">
<xsl:variable name="param"></xsl:variable> <xsl:apply-templates />
</xsl:template>
<xsl:template match="@ | ">
<xsl:copy>
<xsl:apply-templates select="@ | node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
答案 0 :(得分:1)
如果你真的想参数化xsl:param
元素的这种属性,那么你需要使用像Saxon 9 PE或EE或Exselt或Altova 2017这样的XSLT 3.0处理器,你可以使用{{3} } <xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xsl:param name="doctype-uri" static="yes" as="xs:string" select="'http://example.com/foo.dtd'"/>
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" doctype-public="foo" _doctype-system="{$doctype-uri}"/>
<xsl:template match="/">
<xsl:copy-of select="."/>
</xsl:template>
</xsl:stylesheet>
和static如下:
getActionBar().hide();
对于早期版本的XSLT,您需要编写两个样式表,其中第一个采用普通参数,并使用所需属性生成第二个样式表。
通常,如果您的目标是将DTD请求重定向到本地副本,则应该查看XML目录,而不是在每个文档的DOCTYPE中实现更改。