我们可以从主 XSLT 映射中调用多个 XSLT 映射吗?基于条件匹配?
示例 xml:
<?xml version="1.0" encoding="UTF-8"?>
<StudentList>
<List>
<Name>Jan</Name>
<StudentClass>10th</StudentClass>
<AGE>13</AGE>
</Client>
<Client>
<Name>MARC</Name>
<StudentClass>8th</StudentClass>
<AGE>8</AGE>
</Client>
</ClientList>
下面是我的主要 xslt 地图。在这个基于条件的 xslt 映射中,我需要调用其他 xslt 映射。下面的代码对我不起作用。
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0"
exclude-result-prefixes="#all">
<xsl:output method="xml" indent="no" omit-xml-declaration="yes"/>
<xsl:param name="StudentClass" select="'10th'"/>
<xsl:param name="AGE" select="'8'"/>
<xsl:template match="*">
<xsl:choose>
<xsl:when test="$StudentClass = '10th'">
<xsl:include href="10thClass_Mapping.xsl"/>
</xsl:when>
<xsl:when test="$AGE = '8'">
<xsl:include href="8years_Mapping.xsl"/>
</xsl:when>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
如何从 MAIN XSLT 映射调用多个 XSLT 映射?
在 XSLT 3 中,使用静态全局参数和
use-when
,您可以使用例如
<xsl:param name="StudentClass" static="yes" select="'10th'"/>
<xsl:include href="10thClass_Mapping.xsl" use-when="$StudentClass = '10th'"/>
请注意,静态参数声明以及任何
xsl:include/xsl:import
都需要用作顶级元素,即 xsl:stylesheet
或 xsl:transform
的子元素。