Как мне запретить XSLT помещать разрыв строки между моими тегами ТЕКСТОВОЙ области

#asp.net #xslt #textarea

#asp.net #xslt #textarea

Вопрос:

У меня есть в файле xsl преобразование, которое содержит <TEXTAREA></TEXTAREA> (без пробелов), и когда оно преобразуется, результаты являются

 <TEXTAREA>
</TEXTAREA>
  

Я не могу найти правильные свойства, чтобы остановить это.

Мы используем XslCompiledTransform и XmlTextWriter

Спасибо.

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

1. Вероятно, вам нужно показать нам немного больше контекста из вашей таблицы стилей и из вашего ASP.NET. Например, есть ли у вас в верхней части таблицы стилей <xsl:output indent="yes" /> ? Как обрабатывается вывод из таблицы стилей (показать ASP.NET код)?

Ответ №1:

XmlTextWriter имеет свойство форматирования, для которого по умолчанию установлено значение Formatting.None. Проверьте, что это так — если для этого свойства было установлено значение Форматирование.Отступ, который учитывал бы нежелательный перевод строки.

Ответ №2:

Используйте xsl:strip-space элемент в начале таблицы стилей.

 <xsl:strip-space elements='TEXTAREA'>
  

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

1. Я не думаю, что это решило бы его проблему. Удаление пробелов выполняется в исходном документе и документе таблицы стилей (а не в выходном документе). В этом случае в документе таблицы стилей нет узла пробелов (дочернего элемента <TEXTAREA></TEXTAREA> ) для удаления. И исходный документ не должен иметь значения, поскольку он не используется внутри <TEXTAREA> .

Ответ №3:

Нежелательные пробелы в выходных данных обычно берутся из одного из трех мест: они копируются из исходного документа (часто путем неявного применения встроенных правил шаблона к текстовым узлам с пробелами в источнике); или они генерируются с помощью indent = «yes», или (редко, но стоит обратить внимание, потому что это последнее место, о котором думает большинство людей), они копируются из таблицы стилей, потому что кто-то поместил xml: space =»сохранить» в таблицу стилей источник.