微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用XSLT获取表中的行值

如何解决如何使用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 举报,一经查实,本站将立刻删除。