2017-03-22 7 views
0

habe ich die folgenden einfache XML-DateiPowershell XML-Attribut zu gieße konkreten Datentyp

<?xml version="1.0" encoding="utf-8"?> 
<MyRoot 
    MyGuid="99999999-9999-9999-9999-999999999999" 
    > 
</MyRoot> 

und Code

[xml]$xml = Get-Content "C:\myfile.xml" 

    $unTypeVariable = $xml.MyRoot | Select MyGuid 

    Write-Host "unTypeVariable = '$unTypeVariable'" 

    [GUID]guidValue = [GUID]($unTypeVariable) 

dritte Zeile Ausgabe:

unTypeVariable = '@{MyGuid=99999999-9999-9999-9999-999999999999}' 

In der letzten Zeile, ich behalte immer eine Cast Exception (direkt darunter). Ich verstehe es, aber ich weiß nicht, wie man es löst.

Kann das "@ {MyGuid = 99999999-9999-9999-9999-999999999999}" nicht konvertieren Wert vom Typ "Selected.System.Xml.XmlElement" eingeben "System.Guid".

Ich habe versucht:

[GUID]guidValue = [GUID]($unTypeVariable.Text) 

    [GUID]guidValue = [GUID]($unTypeVariable.Value) 

    [GUID]guidValue = [GUID]($unTypeVariable.InnerText) 

    [GUID]guidValue = [GUID]($unTypeVariable.'#text') 

Es ist wahrscheinlich etwas dumm.

Ich bin kein Powershell-Guru.

Antwort

1

Ich habe es endlich mit

$unTypeVariable = $xml.SelectSingleNode('//MyRoot').Attributes["MyGuid"].Value 

[GUID]guidValue = [GUID]($unTypeVariable) 

Und ein Kollege hat mir gerade eine Nachricht.

Dies wird auch funktionieren:

$unTypeVariable = $xml.MyRoot.MyGuid 

[GUID]guidValue = [GUID]($unTypeVariable) 
Verwandte Themen