Строка параметра xsl по умолчанию не может начинаться с точки

В моей таблице стилей я пытаюсь установить значение по умолчанию для входного параметра в строку, начинающуюся с символа точки. И всегда получайте код ошибки 0x8004005 — Ожидаемый тоден «eof» нашел «ИМЯ». Например:

<xsl:param name="p1" select=".exe"/>

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


person Skippy VonDrake    schedule 04.02.2011    source источник
comment
Хороший вопрос, +1. Смотрите мой ответ для объяснения и простого решения. :)   -  person Dimitre Novatchev    schedule 04.02.2011


Ответы (1)


Необходимо указать "значение по умолчанию" в виде строкового литерала.

Просто измените:

<xsl:param name="p1" select=".exe"/>

to:

<xsl:param name="p1" select="'.exe'"/>

В первом случае значение атрибута select оценивается как выражение XPath, а не как строка.

person Dimitre Novatchev    schedule 04.02.2011
comment
@ Skippy-VonDrake: Рад, что мой ответ оказался полезным. Здесь, в SO, принятой формой благодарности является принятие ответа (щелкнув галочку рядом с ним). :) - person Dimitre Novatchev; 04.02.2011
comment
OK. В следующий раз я также научусь публиковать свои вопросы, чтобы код был виден! Спасибо еще раз. - person Skippy VonDrake; 04.02.2011
comment
@ Skippy-VonDrake: я отредактировал это для вас. Просто выберите код, затем нажмите кнопку кода ({}). - person Dimitre Novatchev; 04.02.2011