У меня есть структура XML, подобная следующей:
<Page Depth="1">
<Page Title="Communities" Depth="2">
<Page Title="Blog" iscurrent="true" Depth="3"/>
<Page Title="Something" Depth="3"/>
<Page Title="Anything" Depth="3"/>
</Page>
<Page Title="News" Depth="2">
<Page Title="Archived news" Depth="3"/>
</Page>
</Page>
Я поместил это в переменную XML с именем sitemap
Я борюсь с XPATH, который возвращает родительский узел узла с атрибутом @iscurrent
вместе с его дочерними элементами. Итак, из приведенного выше примера мне нужно следующее подмножество:
<Page Title="Communities" Depth="2">
<Page Title="Blog" iscurrent="true" Depth="3"/>
<Page Title="Something" Depth="3"/>
<Page Title="Anything" Depth="3"/>
</Page>
Я пытался применить этот шаблон, но ничего не получилось:
<xsl:apply-templates mode="Tabs"
select="$sitemap/Page[@iscurrent='true']/parent/*" />
Шаблон не должен быть релевантным, но в любом случае, вот его базовая версия:
<xsl:template mode="Tab" match="*">
<li>
<xsl:if test="@iscurrent = 'true'">
<xsl:attribute name="class">current</xsl:attribute>
</xsl:when>
<xsl:value-of select="@MenuTitle" />
</li>
</xsl:template>