过滤XSLT结果

时间:2009-06-04 06:53:29

标签: xslt sorting filtering sitecore

我有一个关于XSLT的任务。

我正在Sitecore CMS上建立一个网站,有些网页必须显示文章列表。这不是问题。

每个文章列表都可以使用一个或多个标签进行“标记”,每篇文章都可以使用相同的标签。假设我有一个用'Wordpress'标记的文章列表。然后我只想展示那些也被标记为'Wordpress'的文章。那也没关系。

但现在我的问题是: 如果文章列表标记有多个标记,并且文章标记有相同的标记,则该文章将多次显示,因为我的XSLT会多次识别标记。

示例: 我有一个带有标签'A'和'B'的文章列表。 然后我有四篇文章:

  • 第1条(标签:'A')
  • 第2条(标签:'A'和'B')
  • 第3条(标签:'B'和'C')
  • 第4条(标签:'D')

现在在我的列表中,我想显示所有与我的文章列表具有相同标签的文章。这将是第1条,第2条和第3条。

我的代码就是这样做的,但由于列表中的两个相同的标签和第2条,第2条显示了两次,而且这不好。

我的下面有一些代码:

<xsl:template match="*">
  <xsl:variable name="ids" select="concat(sc:fld('tags',$sc_currentitem),'|')"/>

  <xsl:call-template name="PrintTitles">
    <xsl:with-param name="ids" select="$ids"/>
    <!-- $sc_currentitem is the item that im currently standing on -->
    <xsl:with-param name="item" select="$sc_currentitem" />
  </xsl:call-template>
</xsl:template>

<xsl:template name="PrintTitles">
  <xsl:param name="ids"/>
  <xsl:param name="item"/>
  <xsl:variable name="itm_id" select="substring-before($ids, '|')"/>

  <xsl:apply-templates select="
    msxml:node-set($item)/item[
      contains(fields/field[@key='tags'], $itm_id)
    ]
  " mode="insure">
    <xsl:with-param name="itm_id" select="$itm_id" />
  </xsl:apply-templates>

  <xsl:call-template name="PrintTitles">
    <xsl:with-param name="ids" select="substring-after($ids, '|')"/>
    <xsl:with-param name="item" select="$item" />
  </xsl:call-template>

</xsl:template>

<xsl:template match="item" mode="insure">
  <xsl:param name="itm_id" />
  <!-- ... -->
</xsl:template>

来自其中一篇文章列表的我的XML:

<item name="Artikelliste" key="artikelliste" id="{92BC787F-C935-4EE7-9D41-AEAF67C9CC06}" tid="{D0C4BD18-E64E-4470-B483-4F33BD50F25F}" mid="{00000000-0000-0000-0000-000000000000}" sortorder="200" language="en" version="1" template="artikelliste" parentid="{110D559F-DEA5-42EA-9C1C-8A5DF7E70EF9}">
    <fields>
        <field tfid="{25BED78C-4957-4165-998A-CA1B52F67497}" key="__created" type="datetime">
            <content></content>
        </field>
        <field tfid="{BADD9CF9-53E0-4D0C-BCC0-2D784C282F6A}" key="__updated by" type="text">
            <content></content>
        </field>
        <field tfid="{234DC975-40DA-472B-B315-796C0FAA8D53}" key="meta title" type="Single-Line Text">
            <content></content>
        </field>
        <field tfid="{D9CF14B1-FA16-4BA6-9288-E8A174D4D522}" key="__updated" type="datetime">
            <content></content>
        </field>
        <field tfid="{72BA1931-236F-4279-8E39-8AC60D33408F}" key="navn i menuen" type="Single-Line Text">
            <content></content>
        </field>
        <field tfid="{8CDC337E-A112-42FB-BBB4-4143751E123F}" key="__revision" type="text">
            <content></content>
        </field>
        <field tfid="{9683EB7C-DE18-472D-B058-562573FAE23D}" key="titel" type="Single-Line Text">
            <content></content>
        </field>
        <field tfid="{001DD393-96C5-490B-924A-B0F25CD9EFD8}" key="__lock" type="memo">
            <content></content>
        </field>
        <field tfid="{93871141-7CB3-472E-9A75-6237A3BCC0F6}" key="tekstindhold" type="Rich Text">
            <content></content>
        </field>
        <field tfid="{9C13A0D7-2B01-4BB6-B35F-9B073ABEDDF3}" key="relaterede sider" type="Treelist">
            <content></content>
        </field>
        <field tfid="{92EB3D7A-DA52-496F-ABC1-6869E3B14551}" key="tags" type="Treelist">
            <content></content>
        </field>
        <field tfid="{2E4FD6E4-83FE-4592-9327-FEC102F817C9}" key="billedetop" type="Image">
            <content></content>
        </field>
        <field tfid="{7C67F2F2-3577-4466-B170-552E463ADD57}" key="source" type="Droptree">
            <content></content>
        </field>
        <field tfid="{C38B9B42-D81D-42ED-A56E-4DBA6FD92D4A}" key="antal artikler" type="Number">
            <content></content>
        </field>
        <field tfid="{5E6D670A-2DD4-4088-8E82-FFD920CEFD9C}" key="alle artikler link" type="Internal Link">
            <content></content>
        </field>
        <field tfid="{BA3F86A2-4A1C-4D78-B63D-91C2779C1B5E}" key="__sortorder" type="text">
            <content></content>
        </field>
        <field tfid="{F1A1FE9E-A60C-4DDB-A3A0-BB5B29FE732E}" key="__renderings" type="layout">
            <content></content>
        </field>
        <field tfid="{DEC8D2D5-E3CF-48B6-A653-8E69E2716641}" key="__security" type="security">
            <content></content>
        </field>
        <field tfid="{A0CB3965-8884-4C7A-8815-B6B2E5CED162}" key="__editors" type="TreelistEx">
            <content></content>
        </field>
    </fields>
    <item name="HP artikel" key="hp artikel" id="{94A742D5-D446-4170-8AF8-099561F57CC4}" tid="{303D39D0-278E-4034-8420-E19A3DEC3298}" mid="{00000000-0000-0000-0000-000000000000}" sortorder="100" language="en" version="1" template="artikel" parentid="{92BC787F-C935-4EE7-9D41-AEAF67C9CC06}">
        <fields>
            <field tfid="{25BED78C-4957-4165-998A-CA1B52F67497}" key="__created" type="datetime">
                <content></content>
            </field>
            <field tfid="{8CDC337E-A112-42FB-BBB4-4143751E123F}" key="__revision" type="text">
                <content></content>
            </field>
            <field tfid="{234DC975-40DA-472B-B315-796C0FAA8D53}" key="meta title" type="Single-Line Text">
                <content></content>
            </field>
            <field tfid="{9683EB7C-DE18-472D-B058-562573FAE23D}" key="titel" type="Single-Line Text">
                <content></content>
            </field>
            <field tfid="{BADD9CF9-53E0-4D0C-BCC0-2D784C282F6A}" key="__updated by" type="text">
                <content></content>
            </field>
            <field tfid="{D9CF14B1-FA16-4BA6-9288-E8A174D4D522}" key="__updated" type="datetime">
                <content></content>
            </field>
            <field tfid="{001DD393-96C5-490B-924A-B0F25CD9EFD8}" key="__lock" type="memo">
                <content></content>
            </field>
            <field tfid="{93871141-7CB3-472E-9A75-6237A3BCC0F6}" key="tekstindhold" type="Rich Text">
                <content></content>
            </field>
            <field tfid="{F1F0A054-010A-41F1-B0AC-D0D658727181}" key="teaser" type="Multi-Line Text">
                <content></content>
            </field>
            <field tfid="{476E11CA-A205-48B2-9520-A0C3D954B281}" key="e-mail" type="Single-Line Text">
                <content></content>
            </field>
            <field tfid="{30A47651-E207-4042-95CC-67C00696EA6F}" key="skrevet af" type="Single-Line Text">
                <content></content>
            </field>
            <field tfid="{12DE369B-E308-4F24-A617-CD426CF0A29A}" key="relateret information" type="Treelist">
                <content></content>
            </field>
            <field tfid="{311C5D67-66FB-422A-84CC-3312EF8A6B64}" key="medarbejder" type="Multilist">
                <content></content>
            </field>
            <field tfid="{08D9129F-0967-4718-A158-2B8CC322D1E7}" key="tags" type="Treelist">
                <content></content>
            </field>
            <field tfid="{F1A1FE9E-A60C-4DDB-A3A0-BB5B29FE732E}" key="__renderings" type="layout">
                <content></content>
            </field>
        </fields>
    </item>
    <item name="Microsoft artikel" key="microsoft artikel" id="{7AF63885-8BA4-4619-9654-12B3865500D0}" tid="{303D39D0-278E-4034-8420-E19A3DEC3298}" mid="{00000000-0000-0000-0000-000000000000}" sortorder="100" language="en" version="1" template="artikel" parentid="{92BC787F-C935-4EE7-9D41-AEAF67C9CC06}">
        <fields>
            <field tfid="{25BED78C-4957-4165-998A-CA1B52F67497}" key="__created" type="datetime">
                <content></content>
            </field>
            <field tfid="{8CDC337E-A112-42FB-BBB4-4143751E123F}" key="__revision" type="text">
                <content></content>
            </field>
            <field tfid="{234DC975-40DA-472B-B315-796C0FAA8D53}" key="meta title" type="Single-Line Text">
                <content></content>
            </field>
            <field tfid="{9683EB7C-DE18-472D-B058-562573FAE23D}" key="titel" type="Single-Line Text">
                <content></content>
            </field>
            <field tfid="{BADD9CF9-53E0-4D0C-BCC0-2D784C282F6A}" key="__updated by" type="text">
                <content></content>
            </field>
            <field tfid="{D9CF14B1-FA16-4BA6-9288-E8A174D4D522}" key="__updated" type="datetime">
                <content></content>
            </field>
            <field tfid="{001DD393-96C5-490B-924A-B0F25CD9EFD8}" key="__lock" type="memo">
                <content></content>
            </field>
            <field tfid="{93871141-7CB3-472E-9A75-6237A3BCC0F6}" key="tekstindhold" type="Rich Text">
                <content></content>
            </field>
            <field tfid="{F1F0A054-010A-41F1-B0AC-D0D658727181}" key="teaser" type="Multi-Line Text">
                <content></content>
            </field>
            <field tfid="{476E11CA-A205-48B2-9520-A0C3D954B281}" key="e-mail" type="Single-Line Text">
                <content></content>
            </field>
            <field tfid="{30A47651-E207-4042-95CC-67C00696EA6F}" key="skrevet af" type="Single-Line Text">
                <content></content>
            </field>
            <field tfid="{2E4FD6E4-83FE-4592-9327-FEC102F817C9}" key="billedetop" type="Image">
                <content></content>
            </field>
            <field tfid="{12DE369B-E308-4F24-A617-CD426CF0A29A}" key="relateret information" type="Treelist">
                <content></content>
            </field>
            <field tfid="{311C5D67-66FB-422A-84CC-3312EF8A6B64}" key="medarbejder" type="Multilist">
                <content></content>
            </field>
            <field tfid="{B61C079A-0B97-4CC0-BB9F-22E7B49D57F9}" key="relaterede sider" type="Treelist">
                <content></content>
            </field>
            <field tfid="{08D9129F-0967-4718-A158-2B8CC322D1E7}" key="tags" type="Treelist">
                <content></content>
            </field>
            <field tfid="{F1A1FE9E-A60C-4DDB-A3A0-BB5B29FE732E}" key="__renderings" type="layout">
                <content></content>
            </field>
        </fields>
    </item>
    <item name="New Artikel" key="new artikel" id="{91D6625E-F0C4-43C0-A990-078536C1989C}" tid="{303D39D0-278E-4034-8420-E19A3DEC3298}" mid="{00000000-0000-0000-0000-000000000000}" sortorder="100" language="en" version="2" template="artikel" parentid="{92BC787F-C935-4EE7-9D41-AEAF67C9CC06}">
        <fields>
            <field tfid="{25BED78C-4957-4165-998A-CA1B52F67497}" key="__created" type="datetime">
                <content></content>
            </field>
            <field tfid="{BADD9CF9-53E0-4D0C-BCC0-2D784C282F6A}" key="__updated by" type="text">
                <content></content>
            </field>
            <field tfid="{5DD74568-4D4B-44C1-B513-0AF5F4CDA34F}" key="__created by" type="text">
                <content></content>
            </field>
            <field tfid="{234DC975-40DA-472B-B315-796C0FAA8D53}" key="meta title" type="Single-Line Text">
                <content></content>
            </field>
            <field tfid="{D9CF14B1-FA16-4BA6-9288-E8A174D4D522}" key="__updated" type="datetime">
                <content></content>
            </field>
            <field tfid="{8CDC337E-A112-42FB-BBB4-4143751E123F}" key="__revision" type="text">
                <content></content>
            </field>
            <field tfid="{9683EB7C-DE18-472D-B058-562573FAE23D}" key="titel" type="Single-Line Text">
                <content></content>
            </field>
            <field tfid="{3E431DE1-525E-47A3-B6B0-1CCBEC3A8C98}" key="__workflow state" type="reference">
                <content></content>
            </field>
            <field tfid="{001DD393-96C5-490B-924A-B0F25CD9EFD8}" key="__lock" type="memo">
                <content></content>
            </field>
            <field tfid="{93871141-7CB3-472E-9A75-6237A3BCC0F6}" key="tekstindhold" type="Rich Text">
                <content></content>
            </field>
            <field tfid="{F1F0A054-010A-41F1-B0AC-D0D658727181}" key="teaser" type="Multi-Line Text">
                <content></content>
            </field>
            <field tfid="{C8F93AFE-BFD4-4E8F-9C61-152559854661}" key="__valid from" type="datetime">
                <content></content>
            </field>
            <field tfid="{08D9129F-0967-4718-A158-2B8CC322D1E7}" key="tags" type="Treelist">
                <content></content>
            </field>
            <field tfid="{12DE369B-E308-4F24-A617-CD426CF0A29A}" key="relateret information" type="Treelist">
                <content></content>
            </field>
        </fields>
    </item>
    <item name="NY" key="ny" id="{F54BC47C-8D7D-4017-BA39-31AAFCD92042}" tid="{303D39D0-278E-4034-8420-E19A3DEC3298}" mid="{00000000-0000-0000-0000-000000000000}" sortorder="100" language="en" version="1" template="artikel" parentid="{92BC787F-C935-4EE7-9D41-AEAF67C9CC06}">
        <fields>
            <field tfid="{25BED78C-4957-4165-998A-CA1B52F67497}" key="__created" type="datetime">
                <content></content>
            </field>
            <field tfid="{BADD9CF9-53E0-4D0C-BCC0-2D784C282F6A}" key="__updated by" type="text">
                <content></content>
            </field>
            <field tfid="{5DD74568-4D4B-44C1-B513-0AF5F4CDA34F}" key="__created by" type="text">
                <content></content>
            </field>
            <field tfid="{234DC975-40DA-472B-B315-796C0FAA8D53}" key="meta title" type="Single-Line Text">
                <content></content>
            </field>
            <field tfid="{D9CF14B1-FA16-4BA6-9288-E8A174D4D522}" key="__updated" type="datetime">
                <content></content>
            </field>
            <field tfid="{8CDC337E-A112-42FB-BBB4-4143751E123F}" key="__revision" type="text">
                <content></content>
            </field>
            <field tfid="{9683EB7C-DE18-472D-B058-562573FAE23D}" key="titel" type="Single-Line Text">
                <content></content>
            </field>
            <field tfid="{3E431DE1-525E-47A3-B6B0-1CCBEC3A8C98}" key="__workflow state" type="reference">
                <content></content>
            </field>
            <field tfid="{001DD393-96C5-490B-924A-B0F25CD9EFD8}" key="__lock" type="memo">
                <content></content>
            </field>
            <field tfid="{08D9129F-0967-4718-A158-2B8CC322D1E7}" key="tags" type="Treelist">
                <content></content>
            </field>
            <field tfid="{93871141-7CB3-472E-9A75-6237A3BCC0F6}" key="tekstindhold" type="Rich Text">
                <content></content>
            </field>
            <field tfid="{F1F0A054-010A-41F1-B0AC-D0D658727181}" key="teaser" type="Multi-Line Text">
                <content></content>
            </field>
        </fields>
    </item>
</item>

所以我的问题是:如果文章已经显示在列表中,我该如何过滤掉它,因此它不会出现多次,即使它有多个与lists标签相同的标签

如果有些人知道如何在日期之后对列表中的文章进行排序,那也会很棒。

我希望你能理解我的问题,而且有些人愿意帮助我:)。

由于

-Kim Andersen

2 个答案:

答案 0 :(得分:2)

一个天真的解决方案是拖动$done变量并在输出任何内容之前检查它:

<xsl:template name="PrintTitles">
  <xsl:param name="ids"/>
  <xsl:param name="item"/>
  <xsl:param name="done" select="'|'"/>

  <xsl:variable name="itm_id" select="substring-before($ids, '|')"/>

  <xsl:if test="not(contains($done, concat('|', $itm_id, '|'))">
    <xsl:apply-templates select="msxml:node-set($item)/item[contains(fields/field[@key='tags'], $itm_id)]" mode="insure">
      <xsl:with-param name="itm_id" select="$itm_id"></xsl:with-param>                    
    </xsl:apply-templates>
  </xsl:if>

  <xsl:call-template name="PrintTitles">
    <xsl:with-param name="ids" select="substring-after($ids, '|')"/>
    <xsl:with-param name="item" select="$item" />
    <xsl:with-param name="done" select="concat($done, $itm_id, '|')" />
  </xsl:call-template>

</xsl:template>

但是,我有一种预感,即整个问题可以更优雅地解决,但如果没有输入XML,这就很难了。

答案 1 :(得分:0)

嗨Tomalak和其他人(?)

很抱歉没有回复此问题。我弄清楚了,并制作了一个完全不同的XSLT,但现在它可以工作。

如果有人感兴趣,我已在下面输入我的代码。但是有很多它;)

<xsl:template match="*">

                                                           tekst                                                       tekst_smal                                           

                             

        <sc:text field="Content"></sc:text>
        <!-- MAX: <xsl:value-of select="$maxAntal" /> -->
    </div>
  
    <xsl:variable name="alleArtikler">
        <root>
            <xsl:choose>
                <xsl:when test="$source/@id != '{0DE95AE4-41AB-4D01-9EB0-67441B7C2450}'">
                    <xsl:apply-templates select="$source/descendant-or-self::item[@template = 'article']">
                        <xsl:with-param name="tags" select="$tags" />
                    </xsl:apply-templates>
                </xsl:when>
                <xsl:otherwise>
                    <xsl:apply-templates select="$sc_currentitem/descendant-or-self::item[@template = 'article']">
                        <xsl:with-param name="tags" select="$tags" />
                    </xsl:apply-templates>
                </xsl:otherwise>

            </xsl:choose>
        </root>
    </xsl:variable>
    <xsl:variable name="listTags">
        <root>
            <page>
                <xsl:call-template name="getTags">
                    <xsl:with-param name="ids" select="$tags"></xsl:with-param>
                </xsl:call-template>
            </page>
        </root>
    </xsl:variable>

    <xsl:choose>

        <xsl:when test="$hasChilds">
            <xsl:choose>
                <!-- HVIS ARTIKELLISTEN ER TAGGET -->
                <xsl:when test="$tags != ''">
                    <xsl:variable name="showThese">
                        <root>
                            <xsl:for-each select="msxml:node-set($listTags)//tag">
                                <xsl:variable name="pageTagId" select="."></xsl:variable>

                                <xsl:for-each select="msxml:node-set($alleArtikler)/root/artikel[tag = $pageTagId]">
                                    <artikel date="{@date}">
                                        <id>
                                            <xsl:value-of select="@id" />
                                        </id>
                                    </artikel>
                                </xsl:for-each>
                            </xsl:for-each>
                        </root>
                    </xsl:variable>

                    <xsl:variable name="tt" select="msxml:node-set($showThese)" />
                    <xsl:apply-templates select="$tt/root/artikel[not(id=preceding-sibling::artikel/id)]" mode="Presentation">
                        <xsl:sort data-type="text" select="./@date" order="descending"  />
                    </xsl:apply-templates>                                               
                </xsl:when>

                <!-- HVIS ARTIKELLISTEN IKKE ER TAGGET -->    
                <xsl:otherwise>
                    <xsl:variable name="showThese">
                        <root>
                            <xsl:for-each select="msxml:node-set($alleArtikler)/root/artikel">
                                <artikel date="{@date}">
                                    <id>
                                        <xsl:value-of select="@id" />
                                    </id>
                                </artikel>
                            </xsl:for-each>    
                        </root>
                    </xsl:variable>

                    <xsl:variable name="tt" select="msxml:node-set($showThese)" />
                    <xsl:apply-templates select="$tt/root/artikel[not(id=preceding-sibling::artikel/id)]" mode="Presentation">
                        <xsl:sort data-type="text" select="./@date" order="descending"  />
                    </xsl:apply-templates>

                </xsl:otherwise>
            </xsl:choose>

        </xsl:when>
        <xsl:when test="not($hasChilds)">
            <xsl:choose>
                <!-- HVIS ARTIKELLISTEN ER TAGGET -->
                <xsl:when test="$tags != ''">
                    <xsl:variable name="showThese">
                        <root>
                            <xsl:for-each select="msxml:node-set($listTags)//tag">
                                <xsl:variable name="pageTagId" select="."></xsl:variable>

                                <xsl:for-each select="msxml:node-set($alleArtikler)/root/artikel[tag = $pageTagId]">
                                    <artikel date="{@date}">
                                        <id>
                                            <xsl:value-of select="@id" />
                                        </id>
                                    </artikel>
                                </xsl:for-each>
                            </xsl:for-each>
                        </root>
                    </xsl:variable>

                    <xsl:variable name="tt" select="msxml:node-set($showThese)" />
                    <xsl:apply-templates select="$tt/root/artikel[not(id=preceding-sibling::artikel/id)]" mode="Presentation">
                        <xsl:sort data-type="text" select="./@date" order="descending"  />
                    </xsl:apply-templates>
                </xsl:when>

                <!-- HVIS ARTIKELLISTEN IKKE ER TAGGET -->
                <xsl:otherwise>
                    <xsl:variable name="showThese">
                        <root>
                            <xsl:for-each select="msxml:node-set($alleArtikler)/root/artikel">
                                <artikel date="{@date}">
                                    <id>
                                        <xsl:value-of select="@id" />
                                    </id>
                                </artikel>
                            </xsl:for-each>
                        </root>
                    </xsl:variable>

                    <xsl:variable name="tt" select="msxml:node-set($showThese)" />
                    <xsl:apply-templates select="$tt/root/artikel[not(id=preceding-sibling::artikel/id)]" mode="Presentation">
                        <xsl:sort data-type="text" select="./@date" order="descending"  />
                    </xsl:apply-templates>

                </xsl:otherwise>
            </xsl:choose>
        </xsl:when>
        <xsl:otherwise>
            Der findes desværre ingen artikler.
        </xsl:otherwise>
    </xsl:choose>

    <xsl:if test="sc:fld('All Articles link', $sc_currentitem) != ''">
        <!--<xsl:variable name="alleArtiklerLink" select="sc:fld('Alle artikler link', $sc_currentitem)" />-->
        <div>
            <xsl:choose>
                <xsl:when test="sc:fld('Related pages', $sc_currentitem) = ''">
                    <xsl:attribute name="class">alle_bred</xsl:attribute>
                </xsl:when>
                <xsl:otherwise>
                    <xsl:attribute name="class">alle_smal</xsl:attribute>
                </xsl:otherwise>
            </xsl:choose>
            <div class="alle_artikler">
                <!--<a href="{$alleArtiklerLink}">
                    <img src="/frontend/images/alle_artikler_btn.png" alt="Alle artikler" />
                </a>-->
                <sc:link select="$sc_currentitem" field="All Articles link">
                    <img src="/frontend/images/alle_artikler_btn.png" alt="Alle artikler" />
                </sc:link>
            </div>
        </div>
    </xsl:if>

</xsl:template>
<xsl:template match="artikel" mode="Presentation">
    <xsl:variable name="artikel" select="sc:item(./id, .)"></xsl:variable>
    <!-- <xsl:value-of select="sc:fld('titel', $artikel)"></xsl:value-of> -->

    <xsl:if test="position() &lt; $maxAntal">
    <div>

        <xsl:choose>
            <xsl:when test="(sc:fld('Related pages', $sc_currentitem) = '')">
                <xsl:attribute name="class">artikel_bred</xsl:attribute>

                <div class="liste_top"></div>

                <div class="liste_bg">
                    <div class="liste_tekst">
                        <div class="dato">
                            <xsl:value-of select="sc:formatdate(sc:fld('date',$artikel),'dd-MM-yyyy')"/>
                        </div>
                        <h3>
                            <sc:link select="$artikel">
                                <xsl:value-of select="sc:fld('Title',$artikel)" />
                            </sc:link>
                        </h3>

                        <div class="teaser_bred">
                            <xsl:choose>
                                <xsl:when test="sc:fld('teaser',$artikel) != ''">
                                    <xsl:value-of select="sc:fld('teaser',$artikel)" disable-output-escaping="yes" />
                                </xsl:when>
                                <xsl:otherwise>
                                    <xsl:value-of select="sc:fld('Content',$artikel)" disable-output-escaping="yes" />
                                </xsl:otherwise>
                            </xsl:choose>

                        </div>
                        <div class="read_more">
                            <sc:link select="$artikel">
                                Læs mere >>
                            </sc:link>
                        </div>

                    </div>
                </div>

                <div class="liste_bund"></div>
            </xsl:when>


            <xsl:otherwise>
                <xsl:attribute name="class">artikel_smal</xsl:attribute>
                <div class="liste_smal_top"></div>

                <div class="liste_smal_bg">
                    <div class="liste_smal_tekst">
                        <div class="dato">
                            <xsl:value-of select="sc:formatdate(sc:fld('date',$artikel),'dd-MM-yyyy')"/>
                        </div>
                        <h3>
                            <sc:link select="$artikel">
                                <xsl:value-of select="sc:fld('Title',$artikel)" />
                            </sc:link>
                        </h3>

                        <div class="teaser_smal">
                            <xsl:value-of select="sc:fld('Content',$artikel)" disable-output-escaping="yes" />
                        </div>
                        <div class="read_more">
                            <sc:link select="$artikel">
                                Læs mere >>
                            </sc:link>
                        </div>

                    </div>
                </div>

                <div class="liste_smal_bund"></div>
            </xsl:otherwise>
        </xsl:choose>

    </div>
    </xsl:if>
</xsl:template>
    
<xsl:template match="item[@template = 'article']">
    <artikel id="{@id}" date="{sc:fld('date', .)}">

        <xsl:variable name="tags" select="./fields/field[@key='tags']"></xsl:variable>
        <xsl:call-template name="getTags">
            <xsl:with-param name="ids" select="$tags"></xsl:with-param>
        </xsl:call-template>

    </artikel>
</xsl:template>

<xsl:template name="getTags">
    <xsl:param name="ids"/>
    <xsl:if test="$ids">
        <xsl:variable name="itm_id" select="substring-before($ids, '|')"/>
        <xsl:if test="$itm_id">
            <tag>
                <xsl:value-of select="$itm_id" />
            </tag>
        </xsl:if>
        <xsl:if test="$itm_id = ''">
            <tag>
                <xsl:value-of select="$ids" />
            </tag>
        </xsl:if>
        <xsl:call-template name="getTags">
            <xsl:with-param name="ids" select="substring-after($ids, '|')"/>
        </xsl:call-template>
    </xsl:if>
</xsl:template>