从主 XSLT 映射调用多个 XSLT 映射

问题描述 投票:0回答:1

我们可以从主 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 xslt-2.0
1个回答
0
投票

在 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
的子元素。

© www.soinside.com 2019 - 2024. All rights reserved.