Проверьте, существует ли параметр в XSLT перед его использованием

Я использую XPATH, чтобы определить, существует ли мой параметр $test. Я использую конструктор XPATH в ALtova Stylevision и подумал, что могу использовать что-то вродеexists ( $blah) или же exists ( string($blah) )Но это заканчивается

" Undefined variable in expression test="exists( string( $blah) )""

Проблема в том, что иногда параметр будет существовать, а иногда нет. Я не хочу использовать жесткий код в пустом параметре!

Можно ли как-то сказать "Проверьте, существует ли параметр XXXX", прежде чем использовать его? Это печально, потому что я знаю, как это сделать практически на любом другом языке программирования.

Определен параметр:

<xsl:param name="blah"> some text </xsl:param>

Эти параметры считываются из отдельного файла "parameters.xslt". Этот файл может существовать или не существовать в зависимости от сценария. Мне нужно проверить, что парам действительно существует, прежде чем я попытаюсь его использовать.

2 ответа

Если вы объявили параметр, он существует. То, что вы хотите знать, имеет ли это значение?

<xsl:choose>
  <xsl:when test="not($blah)">$blah wasn’t passed in</xsl:when>
  <xsl:otherwise>$blah was passed in</xsl:otherwise>
</xsl:choose>

По сути, если вы пишете XSLT, вы должны знать, какие переменные были объявлены. Вы пытаетесь работать с какой-то моделью разработки, в которой люди, пишущие разные модули таблицы стилей, не имеют полного знания кода друг друга, а XSLT не предназначен для работы с этой моделью.

XSLT вряд ли уникален в этом: вы не найдете в методе Java ничего, что позволяло бы автору метода спрашивать "сколько аргументов было предоставлено вызывающей стороной?". Если недостаточно аргументов, код просто не скомпилируется.

Другие вопросы по тегам