Templates 是否可以先运行导入的根模板?
假设您有以下两个xsl文件: cow-wrapper.xslTemplates 是否可以先运行导入的根模板?,templates,xslt,import,document-root,Templates,Xslt,Import,Document Root,假设您有以下两个xsl文件: cow-wrapper.xsl test.xsl 在这种情况下,根本不调用cow-wrapper.xsl中的根匹配。有没有办法使cow-wrapper.xsl中的根模板与test.xsl中的根模板相匹配 我想要的是一种简单地导入文件并将其包装到常规输出的方法。例如,在soap信封中。从中可以看出,导入的模板的优先级始终低于具有较高导入优先级的冲突模板(其中主XSLT具有最高导入优先级),但这可能是一种合适的解决方法: <xsl:stylesheet v
test.xsl
在这种情况下,根本不调用cow-wrapper.xsl中的根匹配。有没有办法使cow-wrapper.xsl中的根模板与test.xsl中的根模板相匹配
我想要的是一种简单地导入文件并将其包装到常规输出的方法。例如,在soap信封中。从中可以看出,导入的模板的优先级始终低于具有较高导入优先级的冲突模板(其中主XSLT具有最高导入优先级),但这可能是一种合适的解决方法:
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:element name="cow">
<apply-templates select="." mode="regular">
</xsl:element>
</xsl:template>
</xsl:stylesheet>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:import href="cow-wrapper.xsl" />
<xsl:template match="/" mode="regular">
<!-- regular stuff to do -->
</xsl:template>
</xsl:stylesheet>
从中可以看出,导入的模板的优先级始终低于具有较高导入优先级的冲突模板(其中主XSLT的导入优先级最高),但这可能是一种合适的解决方法:
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:element name="cow">
<apply-templates select="." mode="regular">
</xsl:element>
</xsl:template>
</xsl:stylesheet>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:import href="cow-wrapper.xsl" />
<xsl:template match="/" mode="regular">
<!-- regular stuff to do -->
</xsl:template>
</xsl:stylesheet>
如果我想先“执行”导入模板中的模板,我要么在导入样式表中没有具有相同匹配模式的模板,要么这样编写:
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:import href="cow-wrapper.xsl" />
<xsl:template match="/">
<xsl:next-match/>
<!-- regular stuff to do -->
</xsl:template>
</xsl:stylesheet>
如果我想先“执行”导入模板中的模板,我要么在导入样式表中没有具有相同匹配模式的模板,要么这样编写:
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:import href="cow-wrapper.xsl" />
<xsl:template match="/">
<xsl:next-match/>
<!-- regular stuff to do -->
</xsl:template>
</xsl:stylesheet>
据我所知,这里的问题是cow-wrapper.xsl无法真正包装常规内容。无论它做了什么,都会在输出中显示为您作为常规输出的任何内容的同级。@Svish,您从未在问题中指定“cow-wrapper.xsl应该包装常规内容”。所以问题完全在于你提出问题的方式。我道歉。我想从文件名来看这是很明显的:p我将澄清这个问题。这里的问题是cow-wrapper.xsl就我所知无法真正包装常规的东西。无论它做了什么,都会在输出中显示为您作为常规输出的任何内容的同级。@Svish,您从未在问题中指定“cow-wrapper.xsl应该包装常规内容”。所以问题完全在于你提出问题的方式。我道歉。我想从文件名来看这是很明显的:p我会澄清这个问题。我担心可能是这样的是的。您的解决方法似乎是一个不错的方法:)@Svish另一个可能的选择是让您的XSL与示例中的XSL保持一致,并在主XSL中使用
,而不是
。我担心可能是这样的情况是的。您的解决方法似乎是一个不错的方法:)@Svish另一个可能的选择是让您的XSL保持您在示例中的方式,并在主XSL中使用
,而不是
。