【发布时间】:2016-04-13 17:55:48
【问题描述】:
我有一个 XML 配置作为一个名为 $appConfig 的 xml 对象加载到我的脚本中。我正在尝试用我自己的字符串替换连接字符串值。这是我到目前为止找到目标字符串的内容:
$appConfig.configuration.connectionStrings.add |
? {$_.name -eq $dbName} |
select connectionString
我基本上想要类似的东西:
$appConfig.configuration.connectionStrings.add |
? {$_.name -eq $dbName} |
select connectionString = $updatedConnectionString
我很确定我需要创建一个变量并用$appConfig 填充它,但每次我尝试时我都会得到另一个XML 对象,而不是按预期编辑目标$appConfig 对象。我将$appConfig 写回其原始文件位置并完成编辑。我似乎无法在这里获得正确的语法。
我的与字符串相关的 XML 示例:
<configuration>
<connectionStrings>
<add name="db" connectionString="Data Source=(local);Initial Catalog=MyDB;Integrated Security=True" providerName="System.Data.SqlClient" />
<add name="dbFiles" connectionString="Data Source=(local);Initial Catalog=MyDB;Integrated Security=True" providerName="System.Data.SqlClient" />
<add name="dbReporting" connectionString="Data Source=(local);Initial Catalog=MyDB;Integrated Security=True" providerName="System.Data.SqlClient" />
<add name="Logging" connectionString="Data Source=(local);Initial Catalog=MyDB;Integrated Security=True" providerName="System.Data.SqlClient" />
</connectionStrings>
</configuration>
【问题讨论】:
-
那里有 4 个元素,其中有
connectionString属性。您想更改其中的哪些,您想为它们分配哪些新值? -
那么 $dbName 变量定义了传递给函数的目标,我选择不包含它,因为变量会随着名称值的变化而变化。因此,如果我想出 1 的答案,我就会得到改变其中任何一个的答案。
-
更进一步;我只是试图用一个字符串替换“Data Source=(local);Initial Catalog=MyDB;Integrated Security=True”。但是,我想尝试将其作为一个 xml 对象来执行,而不仅仅是字符串替换,因为不同的配置会使这个过程变得困难。
标签: xml powershell