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

问题描述

我有一个标签的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","")

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...