如何使用XSLT检查xml元素值是否为“null”?

时间:2017-10-20 11:06:34

标签: xml xslt xslt-2.0

我的源XML:

<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? Party Id是Item元素的FirstName + LastName。

1 个答案:

答案 0 :(得分:0)

在使用XSLT 2.0时,您可以在此使用string-join代替concat

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