Как проверить, равно ли нулю значение XML в XSLT

В XML-документе у меня есть некоторые адресные данные ..

<zip>08001</zip>
<zipPlus xsi:nil="true" />

и

<zip>08002</zip>
<zipPlus>4512</zipPlus>

Вкл. хотят только потрудиться с отображением значения zip plus, если есть ценность для использования. (для целей этого примера меня не волнует, правильный ли это формат zip plus или нет)

Попытка использовать следующий фрагмент в XSLT никогда не работает правильно, и я думаю, что это связано с тем, как Я проверяю значение xsl: nil

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

Результаты, которые я получаю, всегда

08001,
08002,

не

08001,
08002-4512,

Каков правильный способ проверки элементов с нулевым значением в XSLT? Есть ли другие способы обойти эту проблему и получить желаемый результат?

6
задан James A Mohler 15 January 2013 в 01:24
поделиться