J'ai l'exemple de l'arbre xml ci-dessous.obtenir le premier élément dont le précédent
-root
-para
-page
-footnum
-para
-footnum
-para
-footnum
-para
-page
-footnum
Je veux appliquer des modèles sur la première footnum
dont précédente est page. De l'intérieur du modèle footnum
. ici ci-dessous para
il y aura encore plus de nœuds mais ici je veux appliquer-template seulement au premier footnum
suivi de page,
, que ce soit dans le même para ou différent.
Le code que j'ai essayé est comme ci-dessous.
<xsl:template match="footnote" mode="footnote">
<xsl:variable name="rt">
<xsl:value-of select="//page/@num/following::footnote[1]/@num"/>
</xsl:variable>
<xsl:value-of select="$rt"/>
<xsl:if test="contains($rt,@num)">
<xsl:variable name="op"><</xsl:variable>
<xsl:variable name="apos">'</xsl:variable>
<xsl:variable name="cl">></xsl:variable>
<xsl:value-of select="concat($op,'?pb label=',$apos,./@num,$apos,'?',$cl)"/>
</xsl:if>
<div class="tr_footnote">
<div class="footnote">
<sup>
<a>
<xsl:attribute name="name"><xsl:text>ftn.</xsl:text><xsl:value-of select="@num"/></xsl:attribute>
<xsl:attribute name="href"><xsl:text>#f</xsl:text><xsl:value-of select="@num"/></xsl:attribute>
<xsl:attribute name="class"><xsl:text>tr_ftn</xsl:text></xsl:attribute>
<xsl:value-of select="@num"/>
</a>
</sup>
<xsl:apply-templates/>
</div>
</div>
</xsl:template>
Mise à jour:
ici quand je suis en cours d'exécution de ce modèle, il me donne avant que les notes du nombre doit être placé, mais ici, je reçois le numéro de la note, mais pas le pagenumber . S'il vous plaît laissez-moi savoir comment je peux récupérer le numéro de page.
ici, il applique des modèles pour tous les footnums. s'il vous plaît laissez-moi savoir où je vais mal.
Merci
À mon humble avis, le principal problème ici est de comprendre ce que vous voulez. Je soupçonne que si vous parvenez à expliquer votre exigence en anglais, la formulation XSLT suivra. –