mJa*_*Jay 9 xml powershell web-config
我想将以下内容添加到web.config的httpHandler部分:
<add name="Telerik_Web_UI_DialogHandler_aspx" verb="*" preCondition="integratedMode" path="Telerik.Web.UI.DialogHandler.aspx" type="Telerik.Web.UI.DialogHandler" />
Run Code Online (Sandbox Code Playgroud)
目前我正在创建一个节点并设置如下属性:
$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);
Run Code Online (Sandbox Code Playgroud)
有没有一种简单的方法可以将字符串转换为节点并附加它?或者只是在孩子们的末尾添加字符串?
小智 6
我喜欢上面链接答案中的 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))
Run Code Online (Sandbox Code Playgroud)
我在这里找到了答案: https ://stackoverflow.com/a/29693625/2165019
特别是如果你有很多配置需要更改,我认为这比使用 API 命令更快、更易读