Как проверить, является ли значение атрибута ненулевым или длина символов в значении атрибута больше 0 - PullRequest
0 голосов
/ 10 сентября 2009

s0SelectedSite - это атрибут класса или столбца таблицы.

<xsl:if test="string-length(@s0SelectedSite) &gt; '0'">
<tr>
  <td width="50%" bgcolor="#C0C0C0"><font size="2"><b>Selected Site:</b></font></td>
  <td><font size="2">&#160;<xsl:apply-templates select="DBE:Attribute   [@name='s0SelectedSite']"/></font></td>
</tr> 
</xsl:if>

В приведенном выше примере значение s0SelectedSite существует, но строки по-прежнему не печатаются.

Например, Должно отображаться следующее: -

Selected Site:             Singapore

Пожалуйста, дайте мне знать, если что-то не так.

Ответы [ 4 ]

2 голосов
/ 10 сентября 2009

Я считаю, что это обычно работает для проверки наличия тега

<xsl:if test="@s0SelectedSite !=''">

Не могли бы вы предоставить образец xml, поскольку я все это время использую, и мне интересно, является ли проблема xpath.

1 голос
/ 10 сентября 2009
  1. Попробуйте <xsl:if test="string-length(@s0SelectedSite) &gt; 0"> (а не '0').
  2. Попробуйте <xsl:if test="@s0SelectedSite">, посмотрите, работает ли он для вас.
0 голосов
/ 01 июня 2017

Вот как я использую его в шаблоне. Он соответствует каждому @dateEnd, который не пуст.

<xsl:template match="@dateEnd[. != '']">
   ...
</xsl:template>
0 голосов
/ 10 сентября 2009

Я попробовал вот так -> У меня это сработало:

<xsl:choose>
  <xsl:when test="string-length(DBE:Attribute[@name='s0SelectedSite']/node()) &gt; 0"> 
    <table>
...
    </table>
  </xsl:when>
  <xsl:otherwise>
    <table>
...
    </table>
  </xsl:otherwise>
</xsl:choose>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...