您可以使用PowerShell的[XML]對象,並設置$xml.PreserveWhitespace = $true
,或利用.NET XmlDocument的做同樣的事情
感謝:
$f = '.\xml_test.xml'
# Using .NET XmlDocument
$xml = New-Object System.Xml.XmlDocument
$xml.PreserveWhitespace = $true
# Or using PS [xml] (older PowerShell versions may need to use psbase)
$xml = New-Object xml
#$xml.psbase.PreserveWhitespace = $true # Older PS versions
$xml.PreserveWhitespace = $true
# Load with preserve setting
$xml.Load($f)
$n = $xml.SelectSingleNode('//file')
$n.InnerText = 'b'
$xml.Save($f)
只要確保在調用XmlDocument.Load或XmlDocument.LoadXml之前設置PreserveWhitespace。
注意:這不保留XML屬性之間的空白!空白in XML屬性似乎被保留,但不是,在之間。該文件談到保留「空白節點」(node.NodeType = System.Xml.XmlNodeType.Whitespace
)而不是屬性。
「保存格式」是什麼意思? – manojlds
它可能不會有所作爲,但是您是否嘗試過使用'$ xml = [xml](Get-Content $ filename)'而不是?否則,您可能必須使用本機.NET XmlDocument類和方法來加載,編輯和保存文件。 – Ryan
@manojids我想保存空白,換行符,標籤等。 –