Have you ever had an XML file that looks like crap?
The problem is that XML is sorta the data encoding equivalent of Shimmer - sometimes its an encoding for programs and sometimes its an encoding for users.
Our PowerShell MVP Brandon Shell pointed out that the output of Export-CLIXML looked like cra.... errrrrr .... well let's just say that was "programmer oriented". :-)
Its true, we were thinking about programs consuming our XML not users. You'll find lots of XML like that in the world (one reason is that it saves a ton of space by eliminating whitespaces).
So if you ever have a file like that and want to be able to read it, you'll want FORMAT-XML:
function Format-XML ([xml]$xml, $indent=2) { $StringWriter = New-Object System.IO.StringWriter $XmlWriter = New-Object System.XMl.XmlTextWriter $StringWriter $xmlWriter.Formatting = "indented" $xmlWriter.Indentation = $Indent $xml.WriteContentTo($XmlWriter) $XmlWriter.Flush() $StringWriter.Flush() Write-Output $StringWriter.ToString() }
Use it like this:
PS> Format-XML ([xml](cat c:\ps\r_and_j.xml)) -indent 4
Enjoy!
UPDATE:
Lee Holmes points out that page 153 of his CookBook has an even simpler example:
gps powershell | Export-CliXml c:\temp\powershell.xml
$xml = [xml] (gc c:\temp\powershell.xml)
$xml.Save([Console]::Out)
Nicely done Lee!
Jeffrey Snover [MSFT] Windows Management Partner Architect Visit the Windows PowerShell Team blog at: http://blogs.msdn.com/PowerShell Visit the Windows PowerShell ScriptCenter at: http://www.microsoft.com/technet/scriptcenter/hubs/msh.mspx