Ваш вопрос сбивает с толку. xsl:choose
ничего не выбирает.
Если вы хотите использовать xsl:choose
в контексте form
- IOW, вы хотите обработать все form
элементов и выбрать, какой код должен выполняться на основе существования note
в ближайшем родственнике - попробуйте что-то вроде:
<xsl:template match="form">
<xsl:choose>
<xsl:when test="following-sibling::form[1]/note">
<!-- DO SOMETHING -->
</xsl:when>
<xsl:otherwise>
<!-- DO SOMETHING ELSE -->
</xsl:otherwise>
</xsl:choose>
</xsl:template>
Чтобы обработать только элементы формы, которые удовлетворяют условию, попробуйте вместо этого:
<xsl:template match="entry">
<!-- ... -->
<xsl:for-each select="form[following-sibling::form[1]/note]">
<!-- DO SOMETHING -->
</xsl:for-each>
<!-- ... -->
</xsl:template>