O parâmetro -Xml
espera a entrada xml como uma string.
Get-Content
, por padrão, retorna uma matriz de strings (uma para cada linha), e é por isso que o primeiro erro é lançado.
Para contornar isso, use o parâmetro -Raw
ao chamar Get-Content
para que ele retorne uma única string:
$xmlContents = Get-Content $xmlFilename -Raw
Antes do PowerShell 3.0, você pode obter a mesma coisa canalizando a matriz de string para Out-String
:
$xmlContents = Get-Content $xmlFilename | Out-String