这是我到目前为止所做的:
$XML = New-Object System.Xml.XmlDocument
$XML.PreserveWhitespace = $true
$XML.Load($path)
#change some node attributes
$XML.Save($path)
如果我打开一个XML文件,并采用这样的代码片段:
<Node
Name="tyjytj"
Number="rthjr"
Source="rjyrtjrjrtj"
BinaryDrive="teheherhehtr" />
它会像这样保存:
<Node Name="tyjytj" Number="rthjr" Source="rjyrtjrjrtj" BinaryDrive="teheherhehtr" />
但我希望能够更改(例如)节点的名称,同时在每个属性之间保持换行符。我希望格式在打开/保存之前保持原样。
答案 0 :(得分:1)
请查看this answer与您的问题非常相似的问题:
虽然似乎没有办法保留xml属性格式,但您可以使用XmlWriterSettings和XmlWriter类的强大功能在xml文档中自行定义它。
您可以指定它在属性之间使用换行符,如下所示:
$xwSettings = new-object System.Xml.XmlWriterSettings
$xwSettings.NewLineOnAttributes = $true
然后使用XmlWriter和这些设置保存文档:
$xmlWriter = [Xml.XmlWriter]::Create("c:\temp\newlines.xml", $xwSettings)
$doc.Save($xmlWriter)
(代码全部来自原始答案。感谢vonPryz)
答案 1 :(得分:-3)
世界上没有XML解析器会告诉您开始标记中的属性是否由空格,换行符或制表符分隔。你不应该关心。