Как проверить, существует ли узел или нет с помощью powershell без получения исключения?
Я пытаюсь проверить, существует ли конкретный узел или нет, как показано ниже.
в моем файле конфигурации есть узел с именем 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)
}
условие, которое я проверяю, может возвращать массив.
Я хотел бы проверить, доступен ли клиентский узел раньше или нет?
3 ответов
почему вы не можете просто сделать что-то вроде:
$xmldata = [xml](Get-Content $webConfig)
$FullSearchStr = $xmldata.configuration.'system.serviceModel'
вы можете попробовать метод SelectSingleNode:
$client = $xmldata.SelectSingleNode('//configuration/system.serviceModel/Client')
if(-not $client)
{
$client = $xmldata.CreateElement('Client')
...
}
вы также можете использовать 'count' как логическое
if ($xmldata.SelectSingleNode('//configuration/system.serviceModel/Client').Count)
{
The count is 1 or more, so it exists
}
else
{
The count is 0, so it doesn't exists
}