Xml 如何根据元素在XSLT中的位置将数字添加为元素的属性?
我有一本长诗集,我想用一个属性来存储它们的位置,每五行对一首诗进行编号 输入:Xml 如何根据元素在XSLT中的位置将数字添加为元素的属性?,xml,xslt,Xml,Xslt,我有一本长诗集,我想用一个属性来存储它们的位置,每五行对一首诗进行编号 输入: <lg> <l>Tú, que del sacro artífice del oro,</l> <l>científica y hermosa, procediste,</l> <l>Circe, que al blanco cisne, al rubio toro,</l&
<lg>
<l>Tú, que del sacro artífice del oro,</l>
<l>científica y hermosa, procediste,</l>
<l>Circe, que al blanco cisne, al rubio toro,</l>
<l>en variedad de formas excediste,</l>
<l>de la excelencia del castalio coro</l>
<l>la humilde musa de mis versos viste;</l>
<l>harás que las corrientes del Leteo</l>
<l>presuman otra vez que canta Orfeo.</l>
</lg>
<lg>
<l>Tú, que pudiste dar con imperiosa</l>
<l>voz (que tembló sin resistencia alguna</l>
<l>el sol en su corona luminosa</l>
<l>y en su argentado cóncavo la luna)</l>
<l>naturaleza no, mas prodigiosa</l>
<l>forma a la humana que corrió fortuna</l>
<l>en el tirreno mar, con nueva forma</l>
<l>en platónico cisne me transforma.</l>
</lg>
圣城奥罗艺术节,
古希腊哲学家埃莫萨,
Circe,que al-blanco cisne,al-rubio toro,
各种形式的超越,
卡斯塔利奥科罗酒店
我的朋友们;
哈拉斯·库里恩特斯·德尔·莱托酒店
普雷斯曼·奥特拉·维兹·卡塔·奥菲。
这是一个不和谐的世界
阿尔古纳抵抗运动
太阳光日冕
y en su argentado cóncavo la luna)
不,我是神童
科里福图纳人形酒店
蒂里诺三月,新形式
尼科顺铂是一种变革。
期望输出:
<lg>
<l>Tú, que del sacro artífice del oro,</l>
<l>científica y hermosa, procediste,</l>
<l>Circe, que al blanco cisne, al rubio toro,</l>
<l>en variedad de formas excediste,</l>
<l n="5">de la excelencia del castalio coro</l>
<l>la humilde musa de mis versos viste;</l>
<l>harás que las corrientes del Leteo</l>
<l>presuman otra vez que canta Orfeo.</l>
</lg>
<lg>
<l>Tú, que pudiste dar con imperiosa</l>
<l n="10">voz (que tembló sin resistencia alguna</l>
<l>el sol en su corona luminosa</l>
<l>y en su argentado cóncavo la luna)</l>
<l>naturaleza no, mas prodigiosa</l>
<l>forma a la humana que corrió fortuna</l>
<l n="15">en el tirreno mar, con nueva forma</l>
<l>en platónico cisne me transforma.</l>
</lg>
圣城奥罗艺术节,
古希腊哲学家埃莫萨,
Circe,que al-blanco cisne,al-rubio toro,
各种形式的超越,
卡斯塔利奥科罗酒店
我的朋友们;
哈拉斯·库里恩特斯·德尔·莱托酒店
普雷斯曼·奥特拉·维兹·卡塔·奥菲。
这是一个不和谐的世界
阿尔古纳抵抗运动
太阳光日冕
y en su argentado cóncavo la luna)
不,我是神童
科里福图纳人形酒店
蒂里诺三月,新形式
尼科顺铂是一种变革。
我想我必须定义一个参数,计算并加上值,但我无法找到解决方案
非常感谢你的帮助 您可以使用
xsl:number
获取文档中l
元素的计数,然后测试其是否可被5整除以输出属性
试试这个XSLT
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml" indent="yes" />
<xsl:template match="l">
<xsl:variable name="n">
<xsl:number level="any" />
</xsl:variable>
<xsl:copy>
<xsl:if test="$n mod 5 = 0">
<xsl:attribute name="n">
<xsl:value-of select="$n" />
</xsl:attribute>
</xsl:if>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
您可以使用
xsl:number
获取文档中l
元素的计数,然后测试其是否可被5整除以输出属性
试试这个XSLT
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml" indent="yes" />
<xsl:template match="l">
<xsl:variable name="n">
<xsl:number level="any" />
</xsl:variable>
<xsl:copy>
<xsl:if test="$n mod 5 = 0">
<xsl:attribute name="n">
<xsl:value-of select="$n" />
</xsl:attribute>
</xsl:if>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>