Xml 如何从其他样式表导入模板?
我知道我必须使用Xml 如何从其他样式表导入模板?,xml,xslt,import,stylesheet,Xml,Xslt,Import,Stylesheet,我知道我必须使用xsl:import,但我不知道如何调用模板的名称 怎么做?您可以使用在传统编程语言中调用函数 您可以在XSLT中定义函数,比如这个输出字符串的简单函数 <xsl:template name="dosomething"> <xsl:text>A function that does something</xsl:text> </xsl:template> 做某事的函数 可以通过调用此函数。您可以使用在传统编程语言中调用函数
xsl:import
,但我不知道如何调用模板的名称
怎么做?您可以使用
在传统编程语言中调用函数
您可以在XSLT中定义函数,比如这个输出字符串的简单函数
<xsl:template name="dosomething">
<xsl:text>A function that does something</xsl:text>
</xsl:template>
做某事的函数
可以通过
调用此函数。您可以使用
在传统编程语言中调用函数
您可以在XSLT中定义函数,比如这个输出字符串的简单函数
<xsl:template name="dosomething">
<xsl:text>A function that does something</xsl:text>
</xsl:template>
做某事的函数
此函数可以通过
调用,使用
非常简单:
名为f.XML的示例XML
:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<a>abc</a>
<b>cde</b>
</root>
包括示例XSLTf1.XSLT
:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:import href="f1.xslt"/>
<xsl:template match="/root">
A: <xsl:value-of select="a/text()" />
<xsl:call-template name="secondTemplate" />
</xsl:template>
</xsl:stylesheet>
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template name="secondTemplate">
B: <xsl:value-of select="b/text()" />
</xsl:template>
</xsl:stylesheet>
B:
输出:
<?xml version="1.0"?>
A: abc
B: cde
A:美国广播公司
B:cde
因此,第一个XSLT(f.XSLT
)确实调用了第二个XSLT(f1.XSLT
)——它是通过使用
行访问的命名模板导入的 使用应用
非常简单:
名为f.XML的示例XML
:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<a>abc</a>
<b>cde</b>
</root>
包括示例XSLTf1.XSLT
:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:import href="f1.xslt"/>
<xsl:template match="/root">
A: <xsl:value-of select="a/text()" />
<xsl:call-template name="secondTemplate" />
</xsl:template>
</xsl:stylesheet>
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template name="secondTemplate">
B: <xsl:value-of select="b/text()" />
</xsl:template>
</xsl:stylesheet>
B:
输出:
<?xml version="1.0"?>
A: abc
B: cde
A:美国广播公司
B:cde
因此,第一个XSLT(f.XSLT
)确实调用了第二个XSLT(f1.XSLT
)——它是通过使用
行访问的命名模板导入的 是的,但是我已经在一个XSLT文件中完成了大量模板,我想将它们导入到另一个XSLT文件中,以便可以重用它们。我不知道怎么做。。。我知道我必须使用xsl:import
,但不知道以后如何调用模板。您不需要导入所有模板,导入上游文件就足够了。是的,但是我在一个XSLT文件中已经完成了大量模板,我想将它们导入到另一个XSLT文件中,以便可以重用它们。我不知道怎么做。。。我知道我必须使用xsl:import
,但不知道以后如何调用模板。您不需要导入所有模板,导入上游文件就足够了。当您在文件中导入另一个xslt时,它将自动应用于您的转换。您的问题不清楚。使用xsl:import
时,将导入导入的样式表中的所有模板。然后调用或应用它们,就好像它们是您自己的样式表的一部分一样。更多信息,请阅读:当您在文件中导入另一个xslt时,它将自动应用于您的转换。您的问题不清楚。使用xsl:import
时,将导入导入的样式表中的所有模板。然后调用或应用它们,就好像它们是您自己的样式表的一部分一样。欲了解更多信息,请阅读: