Положение родительского узла в исходном дереве можно найти, сосчитав его предшествующих братьев и сестер:
<xsl:variable name="parent-position"
select="count(../preceding-sibling::*) + 1"/>
Если вы хотите определить, есть ли какие-либо элементы p
после родительского элемента ul
, вы можете проверить это без использования позиций вообще:
<xsl:if test="../following-sibling:p">...</xsl:test>
Однако, как отметили Димитр и Оливер, в духе XSLT стоит добавить нижний колонтитул при обработке родительского элемента. Кроме того, показанные выражения XPath заботятся только о порядке в исходном дереве исходных текстов. Если вы собираетесь отфильтровать элементы или изменить порядок с xsl:sort
перед обработкой, эти пути не будут работать должным образом, так как они будут смотреть на исходное упорядочение и включать все узлы в дереве источника.