2017-09-18 3 views
0

J'ai une entréeXSLT pour joindre des éléments BPEL

<features> 
<feature name="Television" featureSpecID="2000"> 
    <displayName>TV</displayName> 
    <parameters> 
     <parameter name="Remote" > 
     </parameter> 
     <parameter name="Cable Box"> 
     </parameter> 
     <parameter name="Carrier"/> 
    </parameter> 
</parameters> 

où je convertir en

<productname>Remote;Cable Box;Carrier</productname> 

J'ai essayé mon code en faisant pour-chacun des paramètres

<xsl:if test='count(tns:parameters/tns:parameter) > "0"'> 
    <xsl:for-each select="tns:parameters/tns:parameter"> 
     <productname> 
     <xsl:value-of select='concat(@name,";")'/> 
     </productname> 
    </xsl:for-each> 
</xsl:if> 
+0

eteint avec mon code est: Remote Cable Box Porteur user3557442

Répondre

0

Le 0 Le nœuddoit se trouver à l'extérieur de la boucle <xsl:for-each>. S'il vous plaît modifier comme suit

<productname> 
    <xsl:for-each select="tns:parameters/tns:parameter"> 
     ... 
    </xsl:for-each> 
</productname> 

Une condition doit être ajouté pour ne pas ajouter le semi-colon à la fin des noms de produits selon la sortie de l'échantillon.

<xsl:if test="position() != last()"> 
    <xsl:value-of select="';'"/> 
</xsl:if> 

code XSLT changement

<productname> 
    <xsl:for-each select="tns:parameters/tns:parameter"> 
     <xsl:value-of select="@name" /> 
     <xsl:if test="position() != last()"> 
      <xsl:value-of select="';'"/> 
     </xsl:if> 
    </xsl:for-each> 
</productname> 

Sortie

<productname>Remote;Cable Box;Carrier</productname> 
+0

dans xslt 2, vous devez utiliser xslvalue-of avec séparateur attribut: