Как сохранить пробелы в открывающем теге элемента в XSLT - PullRequest
2 голосов
/ 06 января 2011

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

Например, учитывая это 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 Ответ

4 голосов
/ 06 января 2011

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

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

См. Также: Сохранение пробела атрибута

И посмотрите очень обширные XSLT FAQ по пробелам: http://www.dpawson.co.uk/xsl/sect2/N8321.html

...