gpt4 book ai didi

xml - 使用Powershell将XML元素添加到复杂的XML文件中

转载 作者:行者123 更新时间:2023-12-03 00:57:27 26 4
gpt4 key购买 nike

对于Powershell来说,在我的远程工作中有一项非常复杂的任务。很难解释,但我会尝试。
我有结构复杂的XML文件(该文件具有Visual Studio的设置):

<UserSettings>
<ToolsOptions>
<ToolsOptionsCategory RegisteredName="Environment" name="Environment">
</ToolsOptionsCategory>
</ToolsOptions>
</UserSettings>

任务添加到子节点下的“ToolsOptionsCategory”部分:
<ToolsOptionsSubCategory PackageName="VS Setup Composition" RegisteredName="ProductUpdates" name="ProductUpdates">
<PropertyValue name="IsBackground">true</PropertyValue>
</ToolsOptionsSubCategory>

我尝试使用AppendChild和CreateElement,但是我不知道如何添加“PackageName”和“RegistereName”等属性。目标文件中没有该子节点,我需要添加它。
如果您能帮助我并给我指路,我将很棒。

先感谢您!保持健康,待在家里:)

最佳答案

对于演示,我使用Here-String

[xml]$xml = @"
<UserSettings>
<ToolsOptions>
<ToolsOptionsCategory RegisteredName="Environment" name="Environment">
</ToolsOptionsCategory>
</ToolsOptions>
</UserSettings>
"@

在现实生活中,您将使用 [xml]$xml = Get-Content -Path 'D:\config.xml'从文件中加载它
$node = $xml.UserSettings.ToolsOptions.ToolsOptionsCategory
# update the attributes for this node
$node.SetAttribute("PackageName", "VS Setup Composition")
$node.SetAttribute("RegisteredName", "ProductUpdates")
$node.SetAttribute("name", "ProductUpdates")
# create the new sub node (XmlElement)
$newNode = $xml.CreateElement("PropertyValue")
$newNode.SetAttribute("name", "IsBackground")
$newNode.InnerText = "true"
# add this new subnode to the 'ToolsOptionsCategory' node
$node.AppendChild($newNode)

$xml.Save('D:\newConfig.xml')

结果:
<UserSettings>
<ToolsOptions>
<ToolsOptionsCategory RegisteredName="ProductUpdates" name="ProductUpdates" PackageName="VS Setup Composition">
<PropertyValue name="IsBackground">true</PropertyValue>
</ToolsOptionsCategory>
</ToolsOptions>
</UserSettings>

关于xml - 使用Powershell将XML元素添加到复杂的XML文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61043643/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com