lundi 7 juin 2021

XSLT 1.0 DISTINCT For-each loop

I need some help with a problem in my XSLT code regarding making for-each loop on distinct values in XSLT 1.0

XML:

<LINES>
  <LINE>
    <LOADS>
      <LOAD>
        <CONTAINER>
          <ContaineId>KCT001232508</ContaineId>
        </CONTAINER>
      </LOAD>
    </LOADS>
  </LINE>
  <LINE>
    <LOADS>
      <LOAD>
        <CONTAINER>
          <ContaineId>KCT00666666</ContaineId>
        </CONTAINER>
      </LOAD>
    </LOADS>
  </LINE>
  <LINE>
    <LOADS>
      <LOAD>
        <CONTAINER>
          <ContaineId>KCT001232508</ContaineId>
        </CONTAINER>
      </LOAD>
    </LOADS>
  </LINE>
</LINES>

My XSLT code:

<PACKAGEDETAILES>
     <xsl:for-each select="LINES/LINE/LOADS/LOAD/CONTAINER">
     <xsl:variable name="CONTAINER"><xsl:value-of select="ContainerId"/></xsl:variable>
     <PACKAGEDETAILE>
        <NetWeight><xsl:value-of select="cd:GetDataFromDB('WEIGHT', 'vContainerContent', concat( 'ORDERID = ', cd:FormatValue($ORDERID), 'AND CONTAINER = ' , cd:FormatValue($CONTAINER)))"/></NetWeight>
        <GrossWeight></GrossWeight>
        <WeightUnit></WeightUnit>
        <Length><xsl:value-of select="cd:GetDataFromDB('LENGTH', 'vContainerContent', concat( 'ORDERID = ', cd:FormatValue($ORDERID), 'AND CONTAINER = ' , cd:FormatValue($CONTAINER)))"/></Length>
        <Width><xsl:value-of select="cd:GetDataFromDB('WIDTH', 'vContainerContent', concat( 'ORDERID = ', cd:FormatValue($ORDERID), 'AND CONTAINER = ' , cd:FormatValue($CONTAINER)))"/></Width>
        <Height><xsl:value-of select="cd:GetDataFromDB('HEIGHT', 'vContainerContent', concat( 'ORDERID = ', cd:FormatValue($ORDERID), 'AND CONTAINER = ' , cd:FormatValue($CONTAINER)))"/></Height>
        <SizeUnit></SizeUnit>
        <Volume></Volume>
        <VolumeUnit></VolumeUnit>
     </PACKAGEDETAILE>
        </xsl:for-each>
     </PACKAGEDETAILES>

I need to show

<PACKAGEDETAILE></PACKAGEDETAILE> 

only for distinct ContainerId values, thank you for any help.

Aucun commentaire:

Enregistrer un commentaire