2013-10-17 4 views
0

노드가 존재하면 web.config 파일에서 노드를 제거하는 powershell 스크립트를 작성하려고합니다. 내가 코드를 다음과 같은 XML 구조를XML SelectSingleNode가있는 노드가 존재하면 제거하십시오.

<configuration> 
    <configSections> 
    <sectionGroup name="common"> 
     <section name="logging" type="Common.Logging.ConfigurationSectionHandler, Common.Logging, Version=2.1.2.0, Culture=neutral, PublicKeyToken=af08829b84f0328e" /> 
    </sectionGroup> 

    </configSections> 
</configuration> 

다음과 같습니다

[xml]$xml = Get-Content $WebAppConfigPath 

$addSectionGroupNode = $xml.SelectSingleNode("//configuration/configSections/sectionGroup/add[@name='common']") 
    if ($addSectionGroupNode -ne $null) 
    { 
    $SectionGroupNode.RemoveChild($addSectionGroupNode) 
    Write-Host "REMOVED" 
    } 

    $xml.Save($WebAppConfigPath) 

그러나, 노드를 찾을 수 없습니다 및 제거되지 않습니다. 올바른 명령을 내게 도와 주시겠습니까?

<sectionGroup> 내부 즉시 <add> 요소를 찾고 다른 기준의 사이에 당신

+0

'$ SectionGroupNode'는 어떻게 정의되어 있습니까? – Richard

답변

0
//configuration/configSections/sectionGroup/add[@name='common'] 

감사하고, 이러한 요소가 없다.

/configuration/configSections/sectionGroup[@name='common'] 

를 사용하는

당신을 찾으시는 ?

참고로 <configuration>은 XML 문서의 루트 요소이며 표현식의 시작 부분에 //을 사용하면 작업 속도가 느려질 수 있습니다.

관련 문제