Почему я не могу заставить параметры работать с применять-шаблонами в XSL?

Я нашел решение! (спасибо Эндрю Траклле за подсказку).

Пожалуйста, посмотрите это обсуждение: news.jrsoftware.org/news/innosetup/msg105110.html. Я предполагаю, что вы используете не Unicode. Попробуйте попробовать бета-версию v6, доступную на сайте.

Эта ошибка обнаруживается в сборках Inno Setup, не относящихся к Unicode (я полагаю, это проблема кодирования?).

Загрузка Unicode один решил это!

6
задан darasd 26 February 2009 в 11:39
поделиться

4 ответа

Хм... интересный... приводит к сбою для меня использование XslTransform и XslCompiledTransform в.NET - но похоже, что это должно работать... любопытное...

обновите проблемное землетрясение, чтобы быть корневым соответствием; попробовать

<xsl:template match="/catalog"> <!-- CHANGE HERE --> 
  <xsl:apply-templates>
    <xsl:with-param name="test" select="'has this parameter been passed?'"/>
  </xsl:apply-templates>
</xsl:template>

Это затем работает на меня без любых других изменений. Различие - то, что Вы соответствовали корневому узлу. Когда Вы сделали Ваш, "применяют шаблоны", это расположилось каскадом сначала к каталогу (с параметрическим усилителем), затем к CD (без параметрического усилителя). Для получения, что Вы хотите необходимо запустить в каталоге. Вы видите это путем добавления <xsl:vaue-of select="name()"/> к соответствию, и затем пробуют его как "/" и "/каталог".

5
ответ дан 10 December 2019 в 02:54
поделиться

Попытайтесь указать шаблоны для применения:

<xsl:template match="/">
  <xsl:apply-templates select="catalog/cd">
    <xsl:with-param name="test" select="'has this parameter been passed?'"/>
  </xsl:apply-templates>
</xsl:template>
2
ответ дан 10 December 2019 в 02:54
поделиться

Работы для меня с libxslt 1.1.24 из http://xmlsoft.org/XSLT/:

$ xsltproc xml1.xsl xml1.xml
<?xml version="1.0"?>


  parameter:
  has this parameter been passed?

  parameter:
  has this parameter been passed?
0
ответ дан 10 December 2019 в 02:54
поделиться

Я вижу, что проблема состоит в том, что там не идет ни в какое сравнение с элементом CD под корнем. Под корнем у Вас есть элемент каталога не элемент CD, поэтому измените шаблон для соответствия ='catalog'

0
ответ дан 10 December 2019 в 02:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: