Вы можете просто проверить, нет ли предшествующих братьев и сестер:
<xsl:when test="not(preceding-sibling::node())">
Обратите внимание, что node()
также включает комментарии и инструкции по обработке, а не только элементы и текст.
В качестве альтернативы,если у вас есть шаблон, соответствующий seg
, где вы делаете что-то вроде этого ...
<xsl:template match="seg">
<xsl:copy>
<xsl:apply-templates />
</xsl:copy>
</xsl:template>
Тогда, поскольку <xsl:apply-templates />
- это сокращение от <xsl:apply-templates select="node()" />
, вы можете использовать position()
в своем шаблоне
<xsl:when test="position() = 1">
Это не сработало бы, если бы шаблон "seg" сделал <xsl:apply-templates select="lb" />
.
См. http://xsltfiddle.liberty -development.net / nc4NzRd для примератесты в действии.