我收到一个平面文件和一个Oracle视图绑定,我需要将这两个模式映射到一个发送平面文件。 Employee Id是平面文件和Oracle视图中的公共字段。我需要在输入模式上检查员工ID,同时检查Oracle中的PREFERREDLASTNAME字段是否为空,然后从Oracle视图发送PREFERREDLASTNAME,否则从文件模式发送Last_Name。
这里我使用的是XSLT Call模板。但我不确定如何检查PREFREEDEDLASTNAME是否为NULL然后将Last_Name设置为PREFREEDEDLASTNAME,否则从输入平面文件中设置Last_Name。
<xsl:template name="GetLastNameVW_EMP_JOB_DEPT">
<xsl:param name="ID" />
<xsl:element name="Last_Name">
<xsl:value-of select="//s0:VW_EMP_JOB_DEPTRECORDSELECT[s0:EMPLOYEE_ID = $ID]/s0:PREFERREDLASTNAME" />
</xsl:element>
</xsl:template>
使用上面的XSLT,它只查找两个模式中的Employee_Number = EMPLOYEE_ID,并将Last_Name设置为PREFERREDLASTNAME,如果它们不相等则留空。如何修改我的XSLT以执行条件
答案 0 :(得分:0)
这是解决方案:
<xsl:template name="GetLastNameVW_EMP_JOB_DEPT">
<xsl:param name="ID" />
<xsl:param name="LASTNAME" />
<xsl:element name="Last_Name">
<xsl:choose>
<xsl:when test="//s0:VW_JAX_EMP_JOB_DEPTRECORD[s0:EMPLOYEE_ID = $ID]/s0:PREFERREDLASTNAME" >
<xsl:value-of select="//s0:VW_JAX_EMP_JOB_DEPTRECORD[s0:EMPLOYEE_ID = $ID]/s0:PREFERREDLASTNAME" />
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$LASTNAME" />
</xsl:otherwise>
</xsl:choose>
</xsl:element>
</xsl:template>