计算 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>
这是我的 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>