我有一个连接模板变量的XSLT样式表。我无法弄清楚如何阻止它这样做,但也保留单一变量
我已经粘贴了下面的代码和转换...您可以看到02/01/2017
变量值 <xsl:variable name="VPlan" select="wd:DEP_VISION_planname/wd:ID[@wd:type = 'Health_Care_Coverage_Plan_ID']"/>
<xsl:variable name="MPlan" select="wd:DEPMEDPLAN/wd:ID[@wd:type = 'Health_Care_Coverage_Plan_ID']"/>
<xsl:variable name="DPlan" select="wd:DEPDENT_PLAN/wd:ID[@wd:type = 'Health_Care_Coverage_Plan_ID']"/>
<xsl:if test="$VPlan = 'HEALTH_CARE_COVERAGE_PLAN-Vision - United Health Care'">
<xsl:call-template name="Depplan">
<xsl:with-param name="Deplan" select="'UHC Vision'"/>
<xsl:with-param name="Startdt" select="../wd:COBRA_Records_within_Range/wd:COBRA_Eligible_Date"/>
</xsl:call-template>
</xsl:if>
<xsl:if test="$DPlan = 'HEALTH_CARE_COVERAGE_PLAN-Dental - MetLife Enhanced'">
<xsl:call-template name="Depplan">
<xsl:with-param name="Deplan" select="'Metlife Dental ASO Enhanced'"/>
<xsl:with-param name="Startdt" select="../wd:COBRA_Records_within_Range/wd:COBRA_Eligible_Date"/>
</xsl:call-template>
</xsl:if>
<xsl:if test="$DPlan = 'HEALTH_CARE_COVERAGE_PLAN-Dental - MetLife Basic'">
<xsl:call-template name="Depplan">
<xsl:with-param name="Deplan" select="'Metlife Dental ASO Basic'"/>
<xsl:with-param name="Startdt" select="../wd:COBRA_Records_within_Range/wd:COBRA_Eligible_Date"/>
</xsl:call-template>
</xsl:if>
<xsl:if test="$MPlan = 'HEALTH_CARE_COVERAGE_PLAN-Medical - Medical Mutual of Ohio PPO SuperMed Plus'">
<xsl:call-template name="Depplan">
<xsl:with-param name="Deplan" select="'Medical Mutual Medical MMO PPO'"/>
<xsl:with-param name="Startdt" select="../wd:COBRA_Records_within_Range/wd:COBRA_Eligible_Date"/>
</xsl:call-template>
</xsl:if>
<xsl:if test="$MPlan = 'HEALTH_CARE_COVERAGE_PLAN-Medical - AETNA PPO Network/Non Network'">
<xsl:call-template name="Depplan">
<xsl:with-param name="Deplan" select="'Aetna Medical PPO'"/>
<xsl:with-param name="Startdt" select="../wd:COBRA_Records_within_Range/wd:COBRA_Eligible_Date"/>
</xsl:call-template>
</xsl:if>
<xsl:if test="$MPlan = 'HEALTH_CARE_COVERAGE_PLAN-Medical - HealthSpan HMO Network Only'">
<xsl:call-template name="Depplan">
<xsl:with-param name="Deplan" select="'HealthSpan Medical HMO'"/>
<xsl:with-param name="Startdt" select="../wd:COBRA_Records_within_Range/wd:COBRA_Eligible_Date"/>
</xsl:call-template>
</xsl:if>
</xsl:template>
<xsl:template name="Depplan">
<xsl:param name="Deplan"/>
<xsl:param name="Startdt"/>
<xsl:text>[QBDEPENDENTPLAN]</xsl:text>
<xsl:call-template name="insertDelimiter"/>
<xsl:value-of select="$Deplan"/>
<xsl:call-template name="insertDelimiter"/>
<!-- <xsl:call-template name="FormatDateValue">
<xsl:with-param name="dateString">
<xsl:value-of select="$Startdt"/>
</xsl:with-param>
</xsl:call-template> -->
<xsl:value-of select="$Startdt"/>
<xsl:call-template name="insertDelimiter"/>
<xsl:call-template name="insertDelimiter"/>
<xsl:text>T</xsl:text>
<xsl:call-template name="insertNewLine"/>
</xsl:template>
被连接起来重复三次。
代码
#ifndef _LINUX_LIMITS_H
输出
[QBDEPENDENTPLAN],UHC Vision,02/01/2017 02/01/2017 02/01/2017,,T
[QBDEPENDENTPLAN],Metlife Dental ASO增强,02/01/2017 02/01/2017 02/01/2017,,T
[QBDEPENDENTPLAN],Aetna Medical PPO,02/01/2017 02/01/2017 02/01/2017 ,, T
答案 0 :(得分:0)
打印3次的日期是<xsl:value-of select="$Startdt"/>
命令的结果。
它的价值来自
<xsl:with-param name="Startdt" select="../wd:COBRA_Records_within_Range/wd:COBRA_Eligible_Date"/>
我认为XPath在这里使用(../wd:COBRA_Records_within_Range/wd:COBRA_Eligible_Date
):
wd:COBRA_Records_within_Range
),wd:COBRA_Eligible_Date
)。 可能的解决方案之一是仅从找到的第一条记录打印日期:
../wd:COBRA_Records_within_Range[1]/wd:COBRA_Eligible_Date
如果您可以保证所有这些日期(来自所有记录)都相同,则无需进一步考虑。
但如果这些日期有所不同呢? 你必须自己考虑这个。