Я нашел решение! (спасибо Эндрю Траклле за подсказку).
Пожалуйста, посмотрите это обсуждение: news.jrsoftware.org/news/innosetup/msg105110.html. Я предполагаю, что вы используете не Unicode. Попробуйте попробовать бета-версию v6, доступную на сайте.
blockquote>Эта ошибка обнаруживается в сборках Inno Setup, не относящихся к Unicode (я полагаю, это проблема кодирования?).
Загрузка Unicode один решил это!
Хм... интересный... приводит к сбою для меня использование 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()"/>
к соответствию, и затем пробуют его как "/" и "/каталог".
Попытайтесь указать шаблоны для применения:
<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>
Работы для меня с 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?
Я вижу, что проблема состоит в том, что там не идет ни в какое сравнение с элементом CD под корнем. Под корнем у Вас есть элемент каталога не элемент CD, поэтому измените шаблон для соответствия ='catalog'