Это должно сработать, но я подозреваю, что будут лучшие решения.
$xml = [System.Xml.XmlDocument](Get-Content .\Desktop\test.xml -Raw)
$urls = $xml.SelectNodes("//Key") | Where-Object { $_.InnerText -eq "URL" }
foreach ($url in $urls) {
if (string]::IsNullOrEmpty($url.NextSibling.InnerText)) {
$url.NextSibling.InnerText = "predetermined text"
}
}
$xml.Save(".\Desktop\test.xml")