How to determine XML type in Powershell?

casting, powershell, types, xml

Solution

Try the `-as` operator:

[bool]((Get-Content c:\Path\To\xml_file.xml) -as [xml])

Problem

I'm writing a script that is supposed to look at the content of a file and determine if it is a (well formed) XML or not. I found a page on [ss64.com][1] that this is quite easy to do: ``` >32 -is [int] True ``` The thing is however that I can only test this by casting the left-side for XML files: ``` >[xml](Get-Content c:\Path\To\xml_file.xml) -is [xml] False ``` ...which in this case would be rather pointless: if the file is XML, the casting will already prove this, else throw an exception. I therefore wonder: is there any way to determine XML files in Powershell in a True-False way?

Original source