Как можно определить в xslt-шаблонизаторе, есть ли у страницы родитель с определённым ID?
Id родителя /result/page/@parentId
на первом уровне всегда parentId="0"
Если родитель один, то всё понятно, а что делать если страница находится на третьем уровне, а мне нужно определить в каком разделе она находится?
Id родителя /result/page/@parentId эквивалентно /result/parents/page[last()]/@parentId, но можно получить дополнительную информацию:
Псевдостатический адрес /result/parents/page[last()]/@alt-name
Название /result/parents/page[last()]/name
Глубина вложенности count(/result/parents/page)
Вообще у меня стоит задача вывести блок с информацией только на страницах определённого раздела, при этом не используя новый шаблон.
<xsl:if test="count(/result/parents/page) = 3">
<!-- some cod -->
</xsl:if>
<xsl:if test="/result/parents/page[@alt-name='target']">
<!-- some cod -->
</xsl:if>
<xsl:if test="/result/parents/page[@id='111']">
<!-- some cod -->
</xsl:if>
Кажется разобрался сам, использовал
/result/parents/page/@id
Получим id второго уровня, на странице второго и более уровня, а на первом ничего не получим.