2

为了避免将敏感信息提交到 SCM 存储库,我编写了一个 XSL 样式表,用于从 ASP.NETWeb.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>
  <!-- ... -->

这可能吗?

4

1 回答 1

4

标签中的空格并不重要,可以由处理器规范化为单个空格,您无法在标准工具中控制它。您也无法控制属性的顺序或用于引用的字符(quot vs apos)。字符实体也可以转换为等效表示。您可能会找到您想要但在 XSLT 中没有的自定义序列化程序。

请注意,如果需要,可以部分保留元素内容中的空白(但我认为这不是您要求的一部分)。

另请参阅:保留属性空白

并查看有关空白的非常广泛的 XSLT 常见问题解答:http ://www.dpawson.co.uk/xsl/sect2/N8321.html

于 2011-01-06T18:06:56.127 回答