我正在尝试检查特定节点是否存在,如下所示。
在我的配置文件中有一个名为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)
}
我正在检查的条件可能会返回数组。
我想检查客户端节点之前是否可用?
答案 0 :(得分:9)
您可以尝试使用SelectSingleNode方法:
$client = $xmldata.SelectSingleNode('//configuration/system.serviceModel/Client')
if(-not $client)
{
$client = $xmldata.CreateElement('Client')
...
}
答案 1 :(得分:4)
为什么你不能做这样的事情:
$xmldata = [xml](Get-Content $webConfig)
$FullSearchStr = $xmldata.configuration.'system.serviceModel'
答案 2 :(得分:3)
你也可以使用' 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
}