#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 =»сохранить» в таблицу стилей источник.