ошибка неизменяемой строковой константы xslt

#string #xslt #constants

#строка #xslt #константы

Вопрос:

для выражения

 <h1 title="{title}: {short-description}">
  

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

Заранее спасибо, Алекс.

Комментарии:

1. Нет повтора . Этот ввод <title>'</title> с выводом этой таблицы стилей <h1 title="{title}" xsl:version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xsl:exclude-result-prefixes="xsl"/> <h1 title="'" />

2. Как сказал Алехандро, я также не могу воспроизвести эту ошибку. Я пробовал Xalan, Saxon 6.5.5 и Saxon 9.3. Вы уверены, что ошибка не в том, что h1 элемент не закрыт? Какой процессор вы используете и каково точное сообщение об ошибке?

Ответ №1:

Вероятно, вам нужно иметь это как

 <h1 title="{title}: {short-description}">
    ... some value here for the h1 to display ...
</h1>
  

В качестве альтернативы вы могли бы сделать следующее:

 <xsl:element name="h1">
    <xsl:attribute name="title">
        {title}: {short-description}
    </xsl:attribute>
    ... some value here for the h1 to display ...
</xsl:element>
  

Надеюсь, это поможет.

Комментарии:

1. Первая форма не имеет ничего общего со второй. Прочитайте о шаблонах значений атрибутов .

2. Спасибо Дэйву за ответ. Моя проблема здесь в том, что это выражение {title} выдает мне значение в одной кавычке. например: тестирование’ . теперь, когда выражение будет вычислено, у нас будет элемент с unterminated string. Как я могу изменить это, чтобы также учитывать эти значения. (значения в кавычках)

3. Если этот код завершается с ошибкой из-за содержимого элемента title, то в вашем процессоре ошибка. Пожалуйста, покажите полный рабочий пример (исходный документ плюс таблица стилей) и скажите, какой процессор XSLT вы используете.