我知道我必须使用xsl:import
,但我不知道如何调用模板的name
。
我该怎么做?
答案 0 :(得分:3)
使用https://support.mulesoft.com/s/article/ka434000000TPOz/Method-not-Allowed-on-API-Kit-requests申请<xsl:call-template>
非常简单:
名为f.xml
的示例XML:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<a>abc</a>
<b>cde</b>
</root>
主要示例XSLT f.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>
包含示例XSLT f1.xslt
:
<?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>
<强>输出:强>
<?xml version="1.0"?>
A: abc
B: cde
所以第一个XSLT(f.xslt
)确实调用了第二个XSLT(f1.xslt
) - 它是用<xsl:import ...>
导入的 - 通过一个命名模板来访问{{1}行。
答案 1 :(得分:0)
您可以使用<xsl:call-template>
来调用传统编程语言中的函数。
您可以在XSLT中定义函数,就像输出字符串的简单函数一样。
<xsl:template name="dosomething">
<xsl:text>A function that does something</xsl:text>
</xsl:template>
可以通过<xsl:call-template name="dosomething">
调用此函数。