In an XML document I have some address data..
<zip>08001</zip>
<zipPlus xsi:nil="true" />
and
<zip>08002</zip>
<zipPlus>4512</zipPlus>
On only want to bother displaying the zip plus value if there is a value to use. (for the purposes of this example, I don't care if its a correct zip plus format or not)
Trying to use the following snippet in an XSLT never seems to work right, and I think it has to do with how I am checking for the xsl:nil value
<EmployerZipCode>
<xsl:value-of select="zip"/>
<xsl:if test="zipPlus != @xsl:nil">
<xsl:value-of select="'-'"/>
<xsl:value-of select="zipPlus"/>
</xsl:if>
<xsl:value-of select="$sepChar"/> <!--this is a comma -->
</EmployerZipCode>
The results I get are always
08001,
08002,
not
08001,
08002-4512,
What is the proper way to check for nil-led elements in XSLT? Are there any other ways to get around this problem and get the result I want?
not(zipPlus/@xsi:nil)
assuming that if the attribute is missing you want the zipplus. However @Jim-Garrison works either (even if in my test you need to replace prefixxsl
withxsi
). – Hereford