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