Как я могу проверить, что значение параметра равно нулю в XSLT - PullRequest
0 голосов
/ 12 октября 2018

Я хотел сделать проверку и выполнить некоторые преобразования в XML.Ниже приведен фрагмент кода, который я использовал.

<xsl:param name="code" />

<xsl:if test="$code != ''">
<xsl:template match="partner/configuration/flags">
    <value><xsl:value-of select="$code"/></value>
</xsl:template>
  </xsl:if>

Попытка проверки состояния с помощью '! =' Не дает ожидаемого результата.Кто-нибудь может помочь разобраться с ошибкой в ​​этом?

1 Ответ

0 голосов
/ 12 октября 2018

Во-первых, ваш код не имеет смысла, потому что вы не можете поместить xsl:template внутрь xsl:if.

Во-вторых, в модели данных XSLT / XPath нет такого понятия, как «ноль».Вы должны объяснить более четко, что вы пытаетесь проверить.Выражение, которое возвращает пустой набор узлов?Элемент узла, который не имеет дочерних элементов?Узел, чье строковое значение является строкой нулевой длины?Это тот случай, когда точность необходима.

В-третьих, если вы собираетесь использовать «! =», Вам нужно точно понимать, что это значит.Если A является набором узлов (или в 2.0, последовательность), то A != "" возвращает true, если в A есть узел, значение которого отличается от строки нулевой длины.Если A - пустое множество, то выражение возвращает false.В большинстве случаев вы, вероятно, хотите not(A=""), а не A!="" - они не означают одно и то же.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...