2014-01-06 3 views

ответ

1

< XSL: Текст > позволит манипулировать текст (бежать, а также белое пространство):

<xsl:text disable-output-escaping="yes|no">

От http://msdn.microsoft.com/en-us/library/ms256107(v=vs.110).aspx:

В стиле лист, текст может быть сгенерирован в литеральное результирующее дерево с или без < xsl: текст >. Однако с помощью этого элемента вы можете использовать некоторый контроль над пробелом, созданным в таблице стилей. Например, для примера , чтобы сделать вашу таблицу стилей более читаемой, вы можете захотеть, чтобы написал один элемент на строку в шаблоне и набрал несколько строк. Выполнение так вводит пробел как часть правила шаблона. Это может быть или не может быть желательным эффектом преобразования. Иногда вам может понадобиться ввести пробел, чтобы отделить два значения данных . Вы можете использовать элемент < xsl: text >, чтобы выполнить это. Белый пробел, заключенный в < xsl: текст > выводится в результирующее дерево.

0

Основной причиной для использования <xsl:text> является то, что пробельные arount текст XSLT таблицы стилей обычно отбрасывают/раздели (http://www.w3.org/TR/xslt#strip). Исключением из этого правила является текст, заключенный в <xsl:text>. Поэтому, если вы хотите явно выводить пробелы, табуляции или новые строки, вам может понадобиться использовать <xsl:text>

<xsl:text> также позволяет в каждом конкретном случае управлять режимом выходного экранирования. Это реже используется; отключение вывода данных, как правило, является неправильным решением, если вы не генерируете не-XML/не-HTML-вывод.

[Извинения за недоразумение, исправлено выше. Я только заметил, что я действительно смотрел рабочий проект XSLT 1.0, а не окончательный RECcomendation. Mea culpa, mea culpa, mea maxima culpa.]

+0

«по состоянию на XSLT 2.0, также позволяет индивидуально контролировать выходный режим экранирования (в XSLT 1.0, который может быть установлен только на глобальном уровне, через атрибут на .) «Я не думаю, что это правильно. –

+0

Повторно зачитал Рекомендацию 1.0 еще раз, и я не вижу ее. Не стесняйтесь указать, где я его пропустил. – keshlam

+0

Я думаю, вы намеревались написать «контроль над пробелом белого пробела», а не * выход с экранированием *? Это также будет больше в контексте вашего первого абзаца, теперь, когда я прочитаю его снова. –

Смежные вопросы