我有一个名为"1.xml"的xml文件:
<configuration >
<application>
<name>My Application</name>
</application>
<log level="info" />
</configuration>
我想要修改name节点中的文本,将其从"My Application"更改为"Name from Powershell"。我可以这样做:
$xml = [xml](Get-Content "1.xml");
$nameNode = $xml.configuration.application.ChildNodes.Item(0);
$nameNode.InnerText = "Name from Powershell";
但我不喜欢按索引获取节点的想法。我想通过名称获取它。但是这些变量对我不起作用:
$nameNode = $xml.configuration.application.name;
$nameNode = $xml.SelectSingleNode("//configuration/application/name");
有没有一种简单的方法在PowerShell中按名称获取元素?
$xml.configuration.application.name
绝对有效,将其设置为新值会更改元素内容。如果“对你不起作用”,你需要更具体地说明是哪部分没有起作用。 - Jeroen Mostert