In the last post, I spoke about those bits of PowerShell we carry around and never think to share. Ages ago I wrote a function named “Format-XML” which “pretty prints” XML with nice indents. I’ve passed it on to a few people over the years - it’s been included as a “helper” in various modules – but I hadn’t published it on its own.
I’ve got that nagging feeling I should be crediting someone for providing the original bits but I’ve long since lost track of who. In Britain people sometimes talk about “Trigger’s broom” which classicists tend to call the Ship of Theseus – if you change a part it’s still the same thing, right? But after every part has been changed? That’s even more true of the “SU” script which will be the subject of a future post but in that case I’ve kept track of its origins.
Whatever… Format-XML is on the PowerShell gallery – you can click Show under FileList on that page to look at the code, or use PowerShell Get (see the Gallery homepage for details) to install it, using
Install-Script -Name format-xml the licence is chosen to all you to incorporate it into anything you want with no strings attached.
Then you can run to load it with
. format-xml.ps1 – that leading “.” matters … and run it with
Format-XML $MyXML or
$MyXML | Format-XML
$MyXML is either any of
- An XML object
- Some text in XML format
- The name of a file which contains XML, or
- A file object where the file contains XML
Incidentally, if you have stuff to share on the PowerShell gallery the sign-up process is quick, and the PowerShell Get module has a
Update-ScriptFileInfo command to set the necessary metadata and then
Publish-Script puts the script into the gallery – it couldn’t be easier.