2012-04-13 6 views
4

Ich schreibe ein Skript, das den Inhalt einer Datei betrachten soll und feststellen soll, ob es sich um ein (wohlgeformtes) XML handelt oder nicht. Ich fand eine Seite auf [ss64.com] [1], dass dies ganz einfach zu tun: Wie kann man den XML-Typ in Powershell bestimmen?

>32 -is [int] 
True 

Die Sache ist jedoch, dass ich nur diese die linke Seite für XML-Dateien durch Gießen testen kann:

... was in diesem Fall wäre ziemlich sinnlos: Wenn die Datei XML ist, wird das Casting dies bereits beweisen, sonst eine Ausnahme auslösen. Ich frage mich daher: Gibt es eine Möglichkeit, XML-Dateien in Powershell auf True-False-Art zu bestimmen?

Antwort

11

Versuchen Sie, die -as Betreiber:

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

Sehr ordentlich - danke! – gustafbstrom

1
function Is-Valid-XML 
{ 
    param ([string] $path) 

    $xml = New-Object System.Xml.XmlDocument 
    try 
    { 
     $xml.Load($path) 
     $valid = $true 
    } 

    catch 
    { 
     $valid = $false 
    } 

    return $valid 
} 
+0

Gut, funktioniert gut! Danke vielmals! – gustafbstrom

Verwandte Themen