Given XML like this:
Code:
<nav>
<tree>
<page id="5004" desc="Site" sort="5004">
<page id="5242" desc="Careers" sort="5242">
<page id="350231838" desc="Careers Update" sort="350231838">
<page id="350231839" desc="September 2005" sort="350231839" />
</page>
</page>
</page>
</tree>
<hidden>
<page id="350231839" />
</hidden>
</nav>
I want to transform the pages (please ignore the badly formed XML) into a series of unordered lists, but I don't want to output any elements if they appear in the <hidden> section. My current test before I output the ul is xsl:if "child::page", but this does not properly handle the case where the current element has children, but they all appear in the hidden section. How would I ask (essentially), "If this element has at least one child element 'page' that does not show up in the hidden list"?