4

ファイルの内容を見て、それが (整形式の) XML かどうかを判断するスクリプトを書いています。[ss64.com][1] で、これがとても簡単にできるページを見つけました。

>32 -is [int]
True

ただし、XML ファイルの左側をキャストすることによってのみ、これをテストできます。

>[xml](Get-Content c:\Path\To\xml_file.xml) -is [xml]
False

...この場合、これはかなり無意味です。ファイルが XML の場合、キャストによって既にこれが証明され、そうでない場合は例外がスローされます。したがって、私は疑問に思います: Powershell で XML ファイルを True-False の方法で判別する方法はありますか?

4

2 に答える 2

11

-as演算子を試してください:

[bool]((Get-Content c:\Path\To\xml_file.xml) -as [xml])
于 2012-04-13T09:20:25.627 に答える
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
}
于 2012-04-13T09:28:16.887 に答える