violetkaipa - Fotolia
Can PowerShell handle XML files?
Extensible Markup Language is just text, so PowerShell can certainly load the contents of an XML file into a variable:
$xml = Get-Content MyXML.xml
But that doesn't tell PowerShell to actually understand the XML; it's just a big wodge of text. To have PowerShell read the XML, you can force it to parse the XML:
[xml]$xml = Get-Content MyXML.xml
Doing so will run the XML through the .NET Framework's XmlDocument class, meaning it will examine the XML and build a document object model from it. If the XML doesn't parse or validate, then you'll get an error.
The resulting XML object essentially turns XML nodes such as <computer></computer> into objects and collections, and it lets you access attributes like<tag attribute="value"> as object properties. It can get fairly complicated quickly. You also obtain ways to add nodes and attributes, remove them and write the modified bit back to a text file.
There are also methods for executing XPath queries. XPath is a XML query language that lets you search an XML file for specified nodes, attributes and so on.
About the author
Don Jones is a well-known and respected PowerShell expert and educator. He's co-author of three books on PowerShell (see PowerShellBooks.com for a list). You can find his content online, including his PowerShell Q&A forums, by visiting DonJones.com.
Dig Deeper on Windows administration tools
Related Q&A from Don Jones
With some simple configuration, admins can run a PowerShell script each time a computer starts with the help of the Task Scheduler GUI and cmdlets. Continue Reading
One of the most common PowerShell questions is how to format the output so it's more presentable. Our expert offers some insight. Continue Reading
There are a few methods for creating a PowerShell transcript that logs everything. We highlight a few of these and what to know about each. Continue Reading