在PowerShell中从String创建XML节点并追加

问题描述 投票:8回答:2

我想将以下内容添加到web.config的httpHandler部分:

<add name="Telerik_Web_UI_DialogHandler_aspx" verb="*" preCondition="integratedMode" path="Telerik.Web.UI.DialogHandler.aspx" type="Telerik.Web.UI.DialogHandler" />

目前我正在创建一个节点并设置如下属性:

$xmlDoc = (Get-Content $webConfig) -as [Xml]
$root = $xmlDoc.get_DocumentElement();

$handler1 = $xmlDoc.CreateNode('element',"add",'')
$handler1.SetAttribute('name','Telerik_Web_UI_DialogHandler_aspx')
$handler1.SetAttribute('verb','*')
$handler1.SetAttribute('preCondition','integratedMode')
$handler1.SetAttribute('path','Telerik.Web.UI.DialogHandler.aspx')
$handler1.SetAttribute('type','Telerik.Web.UI.DialogHandler')
$root.'system.webServer'.handlers.AppendChild($handler1);

有没有一种简单的方法可以将字符串转换为节点并附加它?或者只是在孩子们的末尾添加字符串?

xml powershell web-config
2个回答
1
投票

我喜欢上面链接答案中的here-array方法。它也非常适合变量替换,这很方便。

$xmlDoc = (Get-Content $webConfig) -as [Xml]

[xml]$InsertNode = @"
<add name="Telerik_Web_UI_DialogHandler_aspx" verb="*" preCondition="integratedMode" path="Telerik.Web.UI.DialogHandler.aspx" type="Telerik.Web.UI.DialogHandler" />
"@

$xmlDoc.configuration.'system.webServer'.handlers.AppendChild($xmlDoc.ImportNode($InsertNode.Add, $true))

0
投票

我在这里找到了答案:https://stackoverflow.com/a/29693625/2165019

特别是如果您需要更改很多配置,那么在我看来,这比使用API​​命令更快,更易读

© www.soinside.com 2019 - 2024. All rights reserved.