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

时间:2016-04-05 15:16:36

标签: xml xslt xslt-2.0

以下是我的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中总是没有相同的位置。他们可以是前面的元素或前兄弟姐妹或其他...

注意标记始终位于2个pb标记之间(如<pb n="15" xml:id="p15"/>中所示。我需要的是指示每个标记标记在这些2 pb标记之间的位置,无论pb标记位于何处以及后。

我希望你能够帮助我。我已经尝试了很多天使用xsl:number但是不能成功... 它有点复杂,因为我的xml文件非常大。 提前谢谢了, FLO

1 个答案:

答案 0 :(得分:0)

根据@ 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>