如何解决如何使用XSLT获取表中的行值
| 我需要使用xslt从使用另一个行值的表中检索行值的帮助。 我有一张桌子,如下所示:Employee Manager
ABC PQR
ABC LMN
DEF XYZ
IJK XYZ
员工可以属于多个部门,可以有多个经理。
该表的xml是:
<List>
<Mapping>
<Employee>ABC</Employee>
<Manager>PQR</Manager>
</Mapping>
<Mapping>
<Employee>ABC</Employee>
<Manager>LMN</Manager>
</Mapping>
<Mapping>
<Employee>DEF</Employee>
<Manager>XYZ</Manager>
</Mapping>
...
</List>
我从函数中获得员工姓名。使用员工姓名作为XSLT中的输入,我应该如何使用XSLT查找员工的经理姓名。我唯一的输出值应该是列表或单个值的“经理名称”。传递\“ ABC \”雇员姓名应该同时给我\“ PQR \”和\“ LMN \”作为经理值。
谢谢
KSR81
解决方法
<xsl:param name=\"empName\" />
<xsl:template match=\"/\">
<xsl:for-each select=\"//Mapping[Employee = $empName]\">
<xsl:value-of select=\"Manager\"/>
<xsl:text> </xsl:text>
</xsl:for-each>
</xsl:template>
这将输出给定雇员的每个经理的姓名,以空格分隔并终止。
为了更有效地执行此操作,您可能需要使用键:
<xsl:param name=\"empName\" />
<xsl:key name=\"mappingByEmployee\" match=\"Mapping\" use=\"Employee\" />
<xsl:template match=\"/\">
<xsl:for-each select=\"key(\'mappingByEmployee\',$empName)\">
<xsl:value-of select=\"Manager\"/>
<xsl:text> </xsl:text>
</xsl:for-each>
</xsl:template>
, <xsl:for-each select=\"Mapping\">
<xsl:if test=\"Employee = \"ABC\"\">
<xsl:value-of select=\"manager\"/>
<xsl:if>
</xsl:for-each>
在此处查看更多信息,并在此处使用参数?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。