2012-04-13 4 views
4

파일의 내용을보고 (잘 구성된) XML인지 아닌지를 결정하는 스크립트를 작성하고 있습니다. 나는의 페이지를 발견 [ss64.com] [1]이해야 할 매우 쉽다는 것을 : Powershell에서 XML 형식을 결정하는 방법?

>32 -is [int] 
True 

것은 내가 단지 XML 파일의 왼쪽을 캐스팅하여이를 테스트 할 수 있지만입니다 :

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

...이 경우에는 무의미합니다. 파일이 XML 인 경우 캐스팅은 이미이를 증명하고 예외를 throw합니다. 따라서 궁금하다 : True-False 방식으로 Powershell에서 XML 파일을 확인할 수있는 방법이 있습니까?

답변

11

-as 연산자를 사용해보십시오 :

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

아주 깔끔한가 - 감사합니다! – 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

좋은 결과, 잘 작동합니다! 고마워요! – gustafbstrom

관련 문제