我需要使用PowerShell命令将字符串替换为文件。
在文件中有XML元素,我需要用另一个字符串<version>1.0.0.0</version>
替换特定元素<version>3.0.0.0</version>
。
对于普通字符串,我可以写如下:
(Get-Content "D:\data.text").replace('1.0.0', '3.0.0') | Set-Content D:\data.text
如何处理可替换<version></version>
元素之间内容的表达式或模式。
编辑:
文件内容如下:
<?xml version="1.0"?>
<package>
<metadata>
<id>C:\BuildAgent_SpiderWeb\work\52d106957b762949 \buildoutput\LatestPublished</id>
<version>3.0.0</version>
<authors>sonidha-a</authors>
</metadata>
</package>
需要:替换ID
元素和Version
元素之间的内容。
答案 0 :(得分:3)
不要对XML数据进行字符串替换。永远。如果你这样做,彩虹独角兽将会死亡。
相反,使用PowerShell的XML解析器,正如@ Deadly-Bagel已经建议的那样:
[xml]$xml = Get-Content 'C:\path\to\your.xml'
$xml.package.metadata.version = '3.0.0.0'
$xml.Save('C:\path\to\output.xml')