azure - 从配置文件中删除数组字符串项
问题描述
如何从配置文件中删除字符串数组项?
<configuration>
<applicationSettings>
<Sample.Service.Properties.Settings>
<setting name="SampleAttribute" serializeAs="Xml">
<value>
<ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<string>firstemail@domain.com</string>
<string>secondemail@domain.com</string>
</ArrayOfString>
</value>
我可以从配置文件中访问第一项(firstemail@domain.com),并且可以用以下代码替换该值。但我的问题是如何通过以下类似代码从配置文件中删除第二项(secondemail@domain.com)。
{
"configuration/applicationSettings/Sample.Service.Properties.Settings/setting[@name='SampleAttribute']/value/ArrayOfString/string[0]":"$(SampleAttribute)"
}
解决方案
从配置文件中删除数组字符串项
恐怕我们无法使用文件转换(不确定Config Transform
您说的是file Transform
还是Config Transformation
)来删除数组字符串项。
要解决此问题,您可以使用任务Replace Tokens替换第一项并删除第二项:
配置文件中变量的格式是#{EmailOne}#
& #{EmailTwo}#
。
我的测试配置文件如下:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<applicationSettings>
<Sample.Service.Properties.Settings>
<setting name="SampleAttribute" serializeAs="Xml">
<value>
<ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<string>#{EmailOne}#</string>
#{EmailTwo}#
</ArrayOfString>
</value>
</setting>
</Sample.Service.Properties.Settings>
</applicationSettings>
</configuration>
然后我们只需要在变量中定义变量 EmailOne 和 EmailTwo 为替换值和空值:
测试结果:
内联 Powershell 脚本:
$appConfigFile = "$(System.DefaultWorkingDirectory)\xxx\xxx\web.config" #change the path to your config file.
$appConfig = New-Object XML
$appConfig.Load($appConfigFile)
foreach($BuildNumber in $appConfig.configuration.applicationSettings."Sample.Service.Properties.Settings".setting.value.ArrayOfString)
{
$BuildNumber.RemoveChild($BuildNumber.FirstChild.NextSibling)
}
$appConfig.Save($appConfigFile)
推荐阅读
- ios - shouldInvalidateLayout 禁用 UICollectionView 的滚动
- excel - 比较单元格然后根据值输出
- ruby-on-rails - 如何使用 Apartment 将现有的 Rails 应用程序迁移到多租户应用程序?
- spring - 如何在春季活动中禁用历史记录
- excel - 复制 M 列中以“xx”开头的单元格并将它们粘贴到另一个工作表中
- python - Python 诅咒用循环刷新文本
- c# - C# 我的 OpenReadCompleted 事件不起作用
- java - Java finding number in list with smallest difference to given number
- reactjs - Firebase orderByChild() equalTo() 对象而不是字符串值?
- java - 无法解析比较()和reverseOrder()的方法