I'm writing an SPE script and am looping over my site nodes. For each site node, I want to check if a particular descendant exists and if not then create it. I have the list of top-level nodes, but cannot figure out how to query each of those nodes for a descendant.
If I was writing in regular query syntax, I could write something like this:
var sites = database.SelectItems("fast:/sitecore/content/Master/*[@@templatename='Website']");
foreach (var site in sites)
{
var settingsItem = site.Axes.SelectItem("descendant::*[@@templatename='Settings']");
//now check if SettingsItem is null, if so create etc
}
What I have in my SPE script:
#get the list of top-level site nodes
$sites = Get-Item master: -Query "fast:/sitecore/content/Master//*[@@templatename='Website']";
foreach ($site in $sites)
{
# get descendant of each $site item that inherits from "Settings" template
$settings = ???
if ($settings == null) {
#create settings item etc...
}
}