计算 2 个其他特定标签之间特定标签的数量

Counting the number of a specific tag between 2 other specific tags

这是我的 xml 输入示例:

<div type="chapter">
        <head>« <hi rend="i">Ad formam ########## te levavi</hi> » (<hi rend="i"
            >Gilbert</hi>, chap. XL) ########</head>
        <head>
            <name type="author">Gilbert C<hi rend="smallcaps">ooker</hi>
            </name>
            <name type="location">#####College, Oxford</name>
        </head>
        <pb n="15" xml:id="p15"/>
        <p>Tous les lecteurs de <hi rend="i">Gilbert</hi>, des ####### passés maîtres aux
            amateurs friands de #############, connaissent et apprécient la repartie concernant le visage
            ############<note xml:id="N2" place="bottom"> Gilbert, <hi
                    rend="i">#######</hi>, éd. Mireille Huchon, Paris, #########, <hi rend="i">Gargantua</hi>, chap. XXXVII, p. 78. </note> , dont
            les compagnons ################# : « Pourquoy, dist Gargantua, est ce, que frere
            Jean a si beau nez ? »<note xml:id="N3" place="bottom">
                <hi rend="i">Gargantua</hi>, chap. XL, p. 112. </note> Si Gilbert y voit une
            manifestation de la volonté de #####, Valérie estime « qu'il feut des premiers à la #####################
            des nez. Il print des plus beaulx et plus grands »<note xml:id="N4" place="bottom">
                <hi rend="i">Ibid.</hi>
            </note> . ###############################################
            « tetins moletz de sa nourrice », qui avaient donné libre cours à la croissance de son nez,
            alors que « les durs tetins de nourrices font les enfans camuz ». La question de la dureté
           ############# également Marot, qui dans une épigramme, <hi rend="i">Du tetin de
                Catin</hi>, réfléchit ainsi :</p>
        <quote>
            <p>Il est tel, et si profitable / Que si du nez hurtoit quelqu'un, / Contre iceluy (sans
                nulle fable) / Il ne se feroit mal aucun<note xml:id="N5" place="bottom"> Clément Marot,
                        <hi rend="i">Œuvres poétiques complètes</hi>, éd. Gérard Defaux, Paris, Bordas,
                    1993, t. II, p. 329, v. 5-8. </note> .</p>
        </quote>
        <p>Et Gilbert d'achever #################### et allusif : <hi rend="i">Ad formam
                #################</hi>. La première partie est à la fois une allusion à la
            physiognomonie – ####################################
            où le Christ parle du figuier : <hi rend="i">A fructibus eorum cognoscetis eos</hi> (Mt 7,
            16 et 20). La deuxième partie est le début du Psaume 123 (122), <hi rend="i">Ad te levavi
                oculos meos</hi>, avec allusion grivoise à l'érection et à la corrélation populaire
           ###############################.</p>
        <pb n="16" xml:id="p16"/>
        <p>Devant le fait que Frère Jean n'est pas le seul des personnages de la geste à avoir un grand
            ####################### « avoit le nez un peu aquillin faict à manche de
                rasouer »<note xml:id="N6" place="bottom"> Gilbert, <hi rend="i">Pantagruel</hi>,
                chap. XVI, p. 272. </note>  –, ##################### conclusion concernant
            Gilbert que</p>
    </div> 

我需要计算 2 pb 标签之间的笔记标签,以获得这样的笔记标签,例如:

<note xml:id="N2-1" place="bottom">...</note>
<note xml:id="N3-2" place="bottom">...</note>

破折号后的数字表示音符标签在 2 个 pb 标签之间的位置(如 <pb n="15" xml:id="p15"/>

问题是有时 pb 标签在 xml 中并不总是有相同的位置。它们可以是前面的元素或前面的兄弟姐妹或其他任何东西......

note tags always between 2 pb tags (like in <pb n="15" xml:id="p15"/>。我需要的是指出每个note标签在这2个pb标签之间的位置,不管pb标签的位置是什么之前和之后。

我希望你已经足够清楚了,可以帮助我。我已经使用 xsl:number 尝试了很多天,但无法成功... 这有点复杂,因为我的 xml 文件真的很大。 提前谢谢了, 弗洛

根据@michael.hor257k 的建议,我认为您可以使用

<xsl:template match="note">
  <xsl:variable name="N">
    <xsl:number level="any" from="pb"/>
  </xsl:variable>
  <note xml:id="{@xml:id}-{$N}">
    <xsl:value-of select="."/>
  </note>
</xsl:template>