gpt4 book ai didi

xml - xslt - 添加 每 n 个节点?

转载 作者:数据小太阳 更新时间:2023-10-29 02:27:59 26 4
gpt4 key购买 nike

我在这里找到了该问题的优雅解决方案:xsl for-each: add code block every n rows?

我想了解 xslt 代码,我想知道您是否可以通过查看上面提供的链接来帮助我理解它。

基本上有3个<xsl:template> .对我来说,前两个足以达到目的。但是我只尝试了 2 <xsl:template>它不起作用。简而言之,第三个是必需的。在这里:

<xsl:template match="gallery[not(position() mod 6 = 1)]"/>

第二个模板有模式,而最后一个没有。

我不知道最后一个是什么时候执行的。你能帮我弄清楚吗?

感谢您的帮助。

问候,

罗兰

最佳答案

这是您询问的完整代码。我恰好是作者,所以让我解释一下:

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>

以下模板覆盖了元素节点的 XSLT 内置模板。它匹配每 6k+1 个 gallery 元素。它创建了一个 tr 元素,并在其内部将处理此 gallery 元素的结果与接下来的 5 个元素放在一起。处理以特殊模式(“proc”)完成以区别于 XSLT 内置模板启动并继续运行的默认匿名模式。

 <xsl:template match="gallery[position() mod 6 = 1]"> 
<tr>
<xsl:apply-templates mode="proc"
select=".|following-sibling::gallery[not(position() > 5)]"
/>
</tr>
</xsl:template>

以下模板在“proc”模式下被调用,以处理一组 6 个元素中的每个 gallery 元素,这些元素应该位于同一行中。

<xsl:template match="gallery" mode="proc"> 
<td>
<img src="{gallery-image-location}" alt="{gallery-image-alt}"/>
</td>
</xsl:template>

以下模板覆盖了所有 gallery 元素的 XSLT 内置模板的默认处理,这些元素的位置不是 6k+1 类型(它们不是开始一个新的 6 元组) .它只是说不要对任何此类元素做任何事情,因为这些元素已经在“proc”模式下处理过。

 <xsl:template match="gallery[not(position() mod 6 = 1)]"/> 
</xsl:stylesheet>

您需要熟悉 XSLT 的处理模型、默认处理和内置模板。

关于xml - xslt - 添加 </tr><tr> 每 n 个节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4010277/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com