2017-10-20 148 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> 

如何清除來自partyId的null?此處派對ID是項目元素的名字+姓氏。

+0

*「如何從partyId空」 *你沒弄清楚你想要什麼,而不是。 – Tomalak

+0

應該忽略空值。並預期的輸出是:

回答

0

當您使用XSLT 2.0,您可以使用string-join代替concat這裏

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

謝謝你這樣一個快速的解決方案..它爲我工作 –