我正在加载一个 XML 文档,其中有一些没有内部文本的标签。
如果我用一些数据填充内部文本,那么它会根据需要工作(您可以在一行上获得开始标记、内部文本和结束标记),如下所示...
<element>value</element>
Run Code Online (Sandbox Code Playgroud)
没有值的标签会出现问题。这些应该以与上面相同的方式显示,当然没有值除外,如下所示:
<element></element>
Run Code Online (Sandbox Code Playgroud)
但是,当内部文本有空字符串时,它会添加回车符和换行符,这不是预期的!它最终看起来像下面这样:
<element>
</element>
Run Code Online (Sandbox Code Playgroud)
我的代码:
$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")
}
Run Code Online (Sandbox Code Playgroud)
小智 3
我自己已经解决了这个问题。我曾经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")
}
Run Code Online (Sandbox Code Playgroud)
要了解更多信息,Select-xml请参阅以下博客: https://blog.stangroome.com/2014/02/10/powershell-select-xml-versus-get-content/
| 归档时间: |
|
| 查看次数: |
1495 次 |
| 最近记录: |