用 powershell 将 xml 中的 '.00' 替换为空白值

Replace '.00' to blank value in xml with powershell

我有一个带有标签 的 xml 文件。 但是,标签中的值以某种方式显示为 111.01.00,然后我想删除 .00。 我试图替换功能,但它似乎打印到 powershell 屏幕而不是保存,尽管我已经有保存功能 这是我的代码:

param ($folder = 'C:\Users\blitz\Desktop\Baiduri\CR\new_xml_format')
$files = Get-ChildItem -Path $folder -Include "*xml" -Recurse
foreach ($file in $files) {
[xml]$xml = Get-Content $file
$xml.SelectNodes('//*[self::balance]') |
    ForEach-Object { $_.'#text' -replace '.00',''} 
$xml.Save($file)
}

您正在替换文本,但实际上并未对它执行任何操作。将项目设置回结果。

param ($folder = 'C:\Users\blitz\Desktop\Baiduri\CR\new_xml_format')
$files = Get-ChildItem -Path $folder -Include "*xml" -Recurse
foreach ($file in $files) {
[xml]$xml = Get-Content $file
$xml.SelectNodes('//*[self::balance]') |
    ForEach-Object { $_.'#text' = $_.'#text' -replace '.00',''} 
$xml.Save($file)
}

当你用空东西替换某些东西时,你可以省略 ,'' 并使其成为

$_.'#text' = $_.'#text' -replace '.00'

实际上,@DougMaurer 没问题,但我们这里不需要 Regex,-replace 使用 Regex 和 .对正则表达式有意义的熊(匹配任何字符)。然后改成:

$_.'#text'.replace(".00","")