如何使用PowerShell脚本在XML标签内部插入值?
如何使用PowerShell脚本在XML标签内部插入值?
我来帮你搞定这个问题~你的脚本没生效是因为赋值方式不对,咱们一步步来修正:
问题出在哪?
你原来的代码里,当执行$node = $MyProjectserver1时,只是把$node这个变量的指向从XML节点改成了字符串'XYZAB',完全没对XML文档本身做任何修改,自然保存后看不到变化啦。
修正后的脚本
要修改XML标签内部的文本,咱们需要操作节点的InnerText属性(或者用#text属性也可以),直接修改节点的内容:
$path = 'C:\newfolder\data.xml' $MyProjectserver1 = 'XYZAB' # 加载目标XML文件 $xml = [xml](Get-Content -Path $path) # 定位到符合条件的节点 $node = $xml.Topology.MyProjectserver1 | Where-Object {$_.desc -eq 'name of the server'} # 关键步骤:设置节点的内部文本内容 $node.InnerText = $MyProjectserver1 # 保存修改后的XML到文件 $xml.Save($path)
简化版(如果确定只有一个目标节点)
如果你的XML里MyProjectserver1节点只有一个,或者你不需要筛选desc属性,还可以更简洁:
$path = 'C:\newfolder\data.xml' $MyProjectserver1 = 'XYZAB' $xml = [xml](Get-Content -Path $path) $xml.Topology.MyProjectserver1.InnerText = $MyProjectserver1 $xml.Save($path)
执行后的效果
运行脚本后,你的XML内容就会变成你想要的样子:
<?xml version="1.0" encoding="utf-8"?> <Topology> <MyProjectserver1 desc="name of the server">XYZAB</MyProjectserver1> </Topology>
备注:内容来源于stack exchange,提问作者Mohan Reddy
相关产品推荐
相关产品推荐

