当元素为空时,“保存”会将换行符添加到XML中

当元素为空时,“保存”会将换行符添加到XML中,xml,powershell,Xml,Powershell,我正在加载一个XML文档,其中包含一些没有innertext的标记 如果我用一些数据填充innertext,那么它会根据需要工作(在一行上获得开始标记、innertext和结束标记),如下所示 值 问题出现在没有值的标记上。这些参数的显示方式应与上述相同,但无值除外,如下所示: 但是,当innertext有一个空字符串时,它会添加一个回车和换行符,这不是预期的!它最终看起来如下所示: 我的代码: $input\u dir=“F:\uma\zz” $output\u dir=“F:\um

我正在加载一个XML文档,其中包含一些没有innertext的标记

如果我用一些数据填充innertext,那么它会根据需要工作(在一行上获得开始标记、innertext和结束标记),如下所示

问题出现在没有值的标记上。这些参数的显示方式应与上述相同,但无值除外,如下所示:


但是,当innertext有一个空字符串时,它会添加一个回车和换行符,这不是预期的!它最终看起来如下所示:


我的代码:

$input\u dir=“F:\uma\zz”
$output\u dir=“F:\uma\zz”
[xml]$xdoc=获取内容“$input\u dir\Subnet\u Network\u 41.xml”
$inprange=5
foreach($范围内的i){
$xdoc.Subnet.Id=“网络\$i”
$xdoc.Subnet.Name=“网络\$i”
$xdoc.Save(“$output\u dir\Subnet\u Network\u$i.xml”)
}

我自己解决了这个问题。我使用了
selectxml
来读取xml文件,它成功了。它在保存xml文档时没有添加换行符。下面是工作代码

$input_dir  = "F:\uma\zz"
$output_dir = "F:\uma\zz"
$xdoc = ( Select-Xml -Path $input_dir\Subnet_Network_41.xml -XPath / ).Node
$inprange   = 5
foreach ($i in $inprange) {
    $xdoc.Subnet.Id   = "Network_$i"
    $xdoc.Subnet.Name = "Network_$i"
    $xdoc.Save("$output_dir\Subnet_Network_$i.xml")
}

要了解有关
选择xml
的更多信息,请参阅以下博客:

原始
子网\u网络\u 41.xml
文件是什么样子的?