2017-10-20 10 views
0

私のソースXML:XSLTを使用してxml要素の値が「null」であるかどうかをチェックする方法は?

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

私は、XSL、以下の変換に使用しています:

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

XSLと入力XMLの上に使用して生成OutputXML:

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

どのように削除するにはパーティーIDからのヌル?ここでパーティIDはItem要素のFirstName + LastNameです。

+0

string-joinを使用することができます*あなたは、あなたの代わりに何をしたい明らかにしませんでした。 – Tomalak

+0

Nullは無視する必要があります。期待される出力は:

答えて

0

あなたがXSLT 2.0を使用しているとして、あなたは「のPartyIdからnullを削除する方法」*の代わりに、ここでconcat

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

このような迅速なソリューションをありがとう..それは私のために働いています –

関連する問題