2017-01-16 4 views
0

Ich habe ein XSLT-Stylesheet, das eine Vorlage Variable verkettet. Ich kann nicht herausfinden, wie ich es davon abhalten kann, aber auch die einzelne Variable zu behalten.
Ich habe den Code und die Umwandlung unten eingefügt ... Sie können sehen, Startdt Variablenwert 02/01/2017 ist verkettet, um dreimal zu wiederholen.XSLT Vorlage verketten String/wie zu stoppen

-Code

<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> 

Ausgabe

[QBDEPENDENTPLAN], UHC Vision 02/01/2017 02/01/2017 02/01/2017, , T
[QBDEPENDENTPLAN], Metlife Dental ASO Verbessert, 02/01/2017 02/01/2017 01.02.2017,, T
[QBDEPENDENTPLAN], Aetna Medical PPO, 02/01/2017 02/01/2017 02/01/2017, T

Antwort

0

Datum gedruckt 3 mal ist ein Ergebnis des <xsl:value-of select="$Startdt"/> Befehls.

Sein Wert kommt von

<xsl:with-param name="Startdt" select="../wd:COBRA_Records_within_Range/wd:COBRA_Eligible_Date"/>

Ich nehme an, dass der XPath hier verwenden (../wd:COBRA_Records_within_Range/wd:COBRA_Eligible_Date):

  • 3 Datensätze gefunden hat (von wd:COBRA_Records_within_Range),
  • druckt Datum (wd:COBRA_Eligible_Date) von jeweils aufnehmen.

Eine der möglichen Lösungen ist das Datum nur aus dem ersten Datensatz drucken gefunden:

../wd:COBRA_Records_within_Range[1]/wd:COBRA_Eligible_Date 

Wenn Sie garantieren können, dass alle diese Daten (aus allen Aufzeichnungen) gleich sind, keine weiteren Überlegungen sind erforderlich.

Aber was wäre, wenn diese Daten anders wären? Sie müssen dies selbst beachten.

+0

Danke, das hat funktioniert. Ich bin mir ziemlich sicher, dass die Daten für jeden, der sich in Reichweite befindet, identisch sein sollten. – MLTS

Verwandte Themen