2017-10-20 28 views
0

XML Ma source:Comment vérifier si une valeur d'élément xml est "nulle" en utilisant XSLT?

<PrtiesData> 
     <newParty userId="1234"> 
      <userData> 
       <item key="FirstName">Grace</item> 
       <item key="LastName">null</item> 
      </userData> 
     </newParty> 
     <newParty userId="5678"> 
      <userData> 
       <item key="FirstName">Naghia</item> 
       <item key="LastName">null</item> 
      </userData> 
     </newParty> 
</PrtiesData> 

J'utilise le ci-dessous XSL pour transform:

<xsl:element name="parties"> 
     <xsl:for-each select="/PrtiesData/newParty/userData" > 
      <xsl:variable name="Name" select="concat(../item[@key='FirstName'],'-',../item[@key='LastName'])"/> 
       <party partyId="{$Name}"/> 
     </xsl:for-each> 
</xsl:element> 

Le OutputXML qui a généré en utilisant au-dessus XML xsl et entrée:

<Parties> 
    <party partyId="Grace-null"/> 
    <party partyId="Naghia-null"/> 
</Parties> 

Comment enlever null de partyId? Ici, l'identifiant de la partie est l'élément Prénom + Nom de l'élément.

+0

* « Comment supprimer null de partyId » * Vous ne précisaient pas ce que vous voulez à la place. – Tomalak

+0

Null doit être ignoré. et la sortie attendue est:

Répondre

0

Comme vous utilisez XSLT 2.0, vous pouvez utiliser string-join au lieu de concat ici

<xsl:variable name="Name" 
       select="string-join((item[@key='FirstName'], item[@key='LastName'][. != 'null']), '-')"/> 
+0

Merci pour une solution si rapide .. Ça a fonctionné pour moi –