如何在没有异常的情况下使用PowerShell检查节点是否存在?

Sam*_*abu 6 powershell powershell-2.0

我试图检查特定节点是否存在,如下所示.

在我的配置文件中有一个名为client的节点,它可能也可能不可用.

如果它不可用,我必须添加它.

    $xmldata = [xml](Get-Content $webConfig)    

        $xpath="//configuration/system.serviceModel"    
        $FullSearchStr= Select-XML -XML $xmldata -XPath $xpath

If ( $FullSearchStr -ne $null) {  

        #Add client node
        $client = $xmldata.CreateElement('Client')
        $client.set_InnerXML("$ClientNode")
        $xmldata.configuration."system.serviceModel".AppendChild($client) 
        $xmldata.Save($webConfig) 

    }
Run Code Online (Sandbox Code Playgroud)

我检查的条件可能会返回数组.

我想检查客户端节点之前是否可用?

Sha*_*evy 9

您可以尝试使用SelectSingleNode方法:

$client = $xmldata.SelectSingleNode('//configuration/system.serviceModel/Client')

if(-not $client)
{
    $client = $xmldata.CreateElement('Client')
    ...
}
Run Code Online (Sandbox Code Playgroud)


And*_*huk 4

为什么你不能做这样的事情:

$xmldata = [xml](Get-Content $webConfig)    
$FullSearchStr = $xmldata.configuration.'system.serviceModel'    
Run Code Online (Sandbox Code Playgroud)