我已经解析了 XML 文件并且我有这些字符串。因此,我需要用新的 GUID“{BBB7C1EB-B0B0-40F3-B1D0-1F28111C5806}”替换 GUID“{87440A4C-1FE4-412E-80C3-74E4F97A31B4}”。这些更改后如何保存 XML?
我解析的字符串:
<块引用>C:\ProgramData\Program {87440A4C-1FE4-412E-80C3-74E4F97A31B4}\Extensions\Signal Integrity
C:\ProgramData\Program {87440A4C-1FE4-412E-80C3-74E4F97A31B4}\Extensions\Vcs_SVN_Unicode
C:\ProgramData\Program {87440A4C-1FE4-412E-80C3-74E4F97A31B4}\Extensions\Mixed Simulation
C:\ProgramData\Program {87440A4C-1FE4-412E-80C3-74E4F97A31B4}\Extensions\SIMetrix
$fileName = "C:\temp\Extensions\ExtensionsRegistry.xml"
$xml = [System.Xml.XmlDocument](Get-Content $fileName)
$Xml.Extensions.Item.Path.ForEach{ $_ -replace 'Program {87440A4C-1FE4-412E-80C3-74E4F97A31B4}', "Program {BBB7C1EB-B0B0-40F3-B1D0-1F28111C5806}"}
$Xml.Save($fileName)
答案 0 :(得分:2)
video.currentTime
运算符不会就地修改其 LHS,它返回一个修改后的副本 LHS。
如果 -replace
元素只有 text 内容,则使用 PowerShell's adaptation of the XML via dot notation 仅返回该文本本身,而不是元素对象,因此您无法修改方式。
因此,您必须以不同的方式枚举Path
元素并分配
的结果
Path
操作返回到它们的 -replace
属性:
.InnerText
答案 1 :(得分:0)
通过 Set-Content 将输出通过管道传输到文件。