Как форматировать текст между тегами xsl:text?
-
09-06-2019 - |
Вопрос
У меня есть лист xslt с текстом, похожим на приведенный ниже:
<xsl:text>I am some text, and I want to be bold</xsl:text>
Я бы хотел, чтобы текст был выделен жирным шрифтом, но это не работает.
<xsl:text>I am some text, and I want to be <strong>bold<strong></xsl:text>
Устаревший тег b тоже не работает.Как отформатировать текст внутри тега xsl:text?
Решение
Вы не знаете. xsl:text
может содержать только текстовые узлы и <strong>
является узлом элемента, а не строкой, начинающейся с символа «меньше»;XSLT предназначен для создания деревьев узлов, а не разметки.Итак, вам нужно сделать
<xsl:text>I am some text, and I want to be </xsl:text>
<strong>bold<strong>
<xsl:text> </xsl:text>
Другие советы
Попробуй это:
<fo:inline font-weight="bold"><xsl:text>Bold text</xsl:text></fo:inline>
<xsl:текст отключить-выход-escaping="да">Я хочу быть <strong>смелым<strong> </xsl:text>
Форматирование XSL-FO должно иметь такую возможность, см. W3Schools. руководство.
Ответ на этот вопрос зависит от того, насколько необходимо форматирование контента, а также от того, откуда вы его получаете.Если у вас меньше контента и меньше форматирования, вы можете использовать то, что предложил jelovirt.
<xsl:text>I am some text, and I want to be </xsl:text>
<strong>bold<strong>
<xsl:text> </xsl:text>
Однако, если ваш контент имеет большое форматирование, то лучший способ сделать это предлагает Дэвид Мединец.
<xsl:text disable-output-escaping="yes">
У нас есть несколько инструкций для печати в пользовательском интерфейсе.Набор инструкций огромен, и, конечно, мы читаем их из XML-файла.
В таких случаях описанный выше метод также прост в использовании и обслуживании.Это потому, что контент предоставляют технические писатели.У них нет знаний XSL.Они знают, как использовать HTML-теги, и могут легко редактировать XML-файл.