我正在加载一个XML文档,其中包含一些没有内嵌文本的标记。
如果我用一些数据填充innertext,那么它可以根据需要工作(你可以在一行上打开标签,innertext和结束标签),如下所示......
<element>value</element>
问题出现在没有值的标签上。这些应该以与上面相同的方式显示,但当然没有价值,例如:
<element></element>
然而,当innertext有一个空字符串时,它会添加一个回车符&amp;换行不是预期的!最终看起来如下:
<element>
</element>
我的代码:
$input_dir = "F:\uma\zz"
$output_dir = "F:\uma\zz"
[xml]$xdoc = Get-Content "$input_dir\Subnet_Network_41.xml"
$inprange = 5
foreach ($i in $inprange) {
$xdoc.Subnet.Id = "Network_$i"
$xdoc.Subnet.Name = "Network_$i"
$xdoc.Save("$output_dir\Subnet_Network_$i.xml")
}
答案 0 :(得分:2)
Select-xml
来读取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")
}
要详细了解Select-xml
,请参阅以下博客:https://blog.stangroome.com/2014/02/10/powershell-select-xml-versus-get-content/