2011-01-06 2 views
2

Во избежание передачи конфиденциальной информации в репозиторий SCM я написал таблицу стилей XSL, которая удаляет пароли строки подключения из файлов ASP.NET Web.config. Он достигает моей цели удаления паролей, но также влияет на пробелы внутри открывающих тегов элементов. Я хотел бы сохранить это пробел, если это возможно.Как сохранить пробелы в открывающемся теге элемента в XSLT

Например, с учетом этого Web.config:

<configuration> 
    <connectionStrings> 
    <add name="ApplicationServices" 
     connectionString="Host=localhost;Username=dev;Password='sensitive password';Database=database" 
     providerName="MySql.Data.MySqlClient" /> 
    </connectionStrings> 
    <!-- ... --> 

Я могу превратить его в:

<configuration> 
    <connectionStrings> 
    <add name="ApplicationServices" connectionString="Host=localhost;Username=dev;Password=********;Database=database" providerName="MySql.Data.MySqlClient" /> 
    </connectionStrings> 
    <!-- ... --> 

Но я хотел бы, чтобы преобразовать его в:

<configuration> 
    <connectionStrings> 
    <add name="ApplicationServices" 
     connectionString="Host=localhost;Username=dev;Password=********;Database=database" 
     providerName="MySql.Data.MySqlClient" /> 
    </connectionStrings> 
    <!-- ... --> 

ли это возможно?

+1

Это не XSLT проблема, но XML синтаксический анализ и представление: Я не думаю, что DOM ни Infoset сохраняет данные о белом пространство между атрибутами «разметка» на элементы «тег» ... –

ответ

4

пробел в тегах не имеет значения и может быть нормализован процессором на отдельные пространства, и вы не можете контролировать это в стандартных инструментах. Вы также не можете контролировать порядок атрибутов или символы, используемые для цитирования (quot vs apos). Объекты символов также могут быть преобразованы в эквивалентные представления. Возможно, вы можете найти пользовательские сериализаторы, которые захотят, а не в XSLT.

Обратите внимание, что пробелы в содержимом элементов могут быть частично сохранены, если требуется (но я не думаю, что это было частью вашего требования).

Смотрите также: Preserving attribute whitespace

И увидеть очень обширный FAQ по XSLT пробельных: http://www.dpawson.co.uk/xsl/sect2/N8321.html

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