Xml 如何在元素中保留空白';XSLT中的开始标记
为了避免将敏感信息提交给SCM存储库,我编写了一个XSL样式表,用于从ASP.NETXml 如何在元素中保留空白';XSLT中的开始标记,xml,xslt,whitespace,xml-formatting,xml-attribute,Xml,Xslt,Whitespace,Xml Formatting,Xml Attribute,为了避免将敏感信息提交给SCM存储库,我编写了一个XSL样式表,用于从ASP.NETWeb.config文件中删除连接字符串密码。它实现了我删除密码的目标,但也会影响元素开头标记中的空格。如果可能的话,我想保留这个空白 例如,给定以下Web.config: <configuration> <connectionStrings> <add name="ApplicationServices" connectionString="Host=
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>
<!-- ... -->
但我想将其转化为:
<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>
<!-- ... -->
这是可能的吗?标记中的空格不重要,处理器可以将其标准化为单个空格,并且在标准工具中无法控制。您也无法控制属性的顺序或用于引用的字符(quot vs apos)。字符实体也可以转换为等效表示。您可以在XSLT中找到自定义序列化程序,这些序列化程序是您想要的,但不是XSLT 注意,如果需要,元素内容中的空白可以部分保留(但我不认为这是您的要求的一部分) 另见:
请参阅有关空白的非常广泛的XSLT常见问题解答:这不是XSLT问题,而是XML解析和表示:我认为DOM和Infoset不会将属性“标记”之间的空白数据保留到元素“标记”中。。。