我将一个XML配置作为名为Route::group(['middleware' => ['web']], function () {
// all routes written here return 500
});
//outside routes works fine
的xml对象加载到我的脚本中。我试图用我自己的字符串替换连接字符串值。这是我到目前为止找到的目标字符串:
$appConfig
我基本上想要类似于此的东西:
$appConfig.configuration.connectionStrings.add |
? {$_.name -eq $dbName} |
select connectionString
我很确定我需要创建一个变量并使用$appConfig.configuration.connectionStrings.add |
? {$_.name -eq $dbName} |
select connectionString = $updatedConnectionString
填充它,但每次尝试时我都会使用另一个XML对象,而不是按预期编辑目标$appConfig
对象。我将$appConfig
写回其原始文件位置并完成编辑。我似乎无法在这里获得正确的语法。
我的XML示例与字符串相关:
$appConfig
答案 0 :(得分:5)
如果你想使用点符号,你可以这样做:
$node = $appConfig.configuration.connectionStrings.add |
Where-Object {$_.name -eq $dbName}
$node.connectionString = $updatedConnectionString
$appConfig.Save()
或类似(如果您不想在修改其属性之前将所选节点分配给变量):
($appConfig.configuration.connectionStrings.add | Where-Object {$_.name -eq $dbName}).connectionString = $updatedConnectionString
$appConfig.Save()
另一种方法是将SelectSingleNode()
方法与XPath表达式一起使用,例如:像这样:
($appConfig.SelectSingleNode("//add[@name='$dbName']").connectionString = $updatedConnectionString
$appConfig.Save()