Aşağıdaki özlü tablo notları ile girdisi olan satır için bir öznitelik türü = "alt çizgi" eklemek istiyorum, bunu yaptım.Ancak soru, birleştirilmiş sütunlar varsa, eklemek zorundayım Ayrıca bu girişlere type = "bottom line" ve giriş sayısı eşit olduğunda bu ekleme durmalıdır.Özyineleme XSLT 2
Girdi XML
<table>
<row>
<entry id="1"></entry>
<entry id="2"></entry>
<entry id="3" merged="1"></entry>
<entry id="4"></entry>
<entry id="5"></entry>
</row>
<row>
<entry id="1"></entry>
<entry id="2"></entry>
<entry id="3" merged="1"></entry>
<entry id="4"></entry>
<entry id="5"></entry>
</row>
<row>
<entry id="6" merged="1"></entry>
<entry id="7"></entry>
<entry id="8"></entry>
<entry id="9"></entry>
</row>
<row>
<entry id="10"></entry>
<entry id="11"></entry>
<entry id="12"></entry>
<entry id="13"></entry>
<entry id=“14"></entry>
</row>
<row>
<entry id="15"></entry>
<entry id="16"></entry>
<entry id="17"></entry>
</row>
<row>
<entry type="table notes">test</entry>
<entry type="table notes">test</entry>
<entry type="table notes">test</entry>
</row>
</table>
Beklenen ÇIKIŞ
<table>
<row>
<entry id="1"></entry>
<entry id="2"></entry>
<entry id="3" merged="1"></entry>
<entry id="4"></entry>
<entry id="5"></entry>
</row>
<row>
<entry id="1"></entry>
<entry id="2"></entry>
<entry id="3" merged="1" type="bottom line"></entry>
<entry id="4"></entry>
<entry id="5"></entry>
</row>
<row>
<entry id="6" merged="1" type="bottom line"></entry>
<entry id="7"></entry>
<entry id="8"></entry>
<entry id="9"></entry>
</row>
<row>
<entry id="10"></entry>
<entry id="11"></entry>
<entry id="12"></entry>
<entry id="13"></entry>
<entry id="14"></entry>
</row>
<row>
<entry id="15" type="bottom line"></entry>
<entry id="16" type="bottom line"></entry>
<entry id="17" type="bottom line"></entry>
</row>
<row>
<entry type="table notes">test</entry>
<entry type="table notes">test</entry>
<entry type="table notes">test</entry>
</row>
</table>
Bugüne kadar yazdığı XSLT:
tablo
notları alt satırı ekleyin
<xsl:template match="row/entry[@merged]" mode="merged"> <xsl:copy> <xsl:apply-templates select="@*"/> <xsl:attribute name="type">bottom line</xsl:attribute> <xsl:apply-templates/> </xsl:copy> <xsl:apply-templates/> </xsl:template> <xsl:template match="row[last()-1]"> <xsl:if test="count(./entry) > count(./preceding-sibling::row/entry)"> <xsl:apply-templates mode="merged"/> </xsl:if> </xsl:template>
beni bu sorunu çözmek için yardım edin Birleştirilmiş girişler için 363.210 alt çizgi
. teşekkürler ..
Tüm giriş [@merged] için alt satır eklenir, ancak bunu kısıtlamak istiyorum. Geçerli satır girdileri önceki satır girişlerine eşit olarak sayılırsa, bu özellik eklenmemelidir. Bu konuda herhangi bir fikir var. . – user2490093
@ user2490093 Bunu anlamadım. Lütfen daha fazlasını açıklayabilir misiniz? Beklenen çıktınız yorum yaptı mı? –