问题描述
我有一个带标签的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","")