例如,我可以访问在Sitecore中创建的配置文件,我可以获取它的名称。
(Sitecore)设置>个人资料>用户类型>娱乐执行> AR执行官
<xsl:variable name="ARExec" select="$UserTypes/item[3]/item[1]"/>
以上代码将打印出 AR Executive
现在在 AR Executive 内部,我有一个名为“相关类型的多列表”,其内部是:
我一直在尝试按照这个例子: http://sdn.sitecore.net/Articles/XSL/Accessing%20Field%20Values/Multilist.aspx
但是我无法重现结果,我希望能够得到并列出所有3个名字,但它只让我抓住音乐,第一项。我正在试图找出如何循环遍历Multilist中的项目并将它们全部显示出来。
<xsl:template match="*" mode="main">
....
<xsl:variable name="ARExec" select="$UserTypes/item[3]/item[1]"/>
<lable><xsl:value-of select="sc:fld('Related Genre Types', $ARExec)"/></lable>
<xsl:variable name="ids" select="concat(sc:fld('Related Genre Types',$ARExec),'|')"/>
<xsl:call-template name="PrintTitles">
<xsl:with-param name="ids" select="$ids"/>
</xsl:call-template>
</xsl:template>
<xsl:template name="PrintTitles">
<xsl:param name="ids"/>
<xsl:if test="$ids">
<xsl:variable name="itm_id" select="substring-before($ids, '|')"/>
<xsl:if test="$itm_id">
<xsl:variable name="itm" select="sc:item($itm_id,.)"/>
<xsl:value-of select="sc:fld('Title', $itm)"/> &
</xsl:if>
<xsl:call-template name="PrintTitles">
<xsl:with-param name="ids" select="substring-after($ids, '|')"/>
</xsl:call-template>
</xsl:if>
</xsl:template>
^打印出{id number ...}音乐&amp;
如何循环浏览我的多重列表以抓取并打印所有3个项目?
答案 0 :(得分:1)
从头到尾,您需要以下内容:
<xsl:variable name="item" select="$usertypes/item[3]/item[1]" />
<xsl:for-each select="sc:Split('related genre types', $item)>
<xsl:variable name="fielditem" select="sc:item(.,.)"/>
<sc:text field="title" select="$fielditem]/>
</xsl:for-each>
我对格式化表示歉意,我在手机上。
<强> [编辑] 强>
在Split函数中,我们不需要调用sc:fld()。
答案 1 :(得分:0)
我必须以不同方式定位Multilist项目的所有者,我必须使用@key定位它,然后example code工作:
<xsl:variable name="ExecUser" select="$UserTypes/item[@key='entertainment executive']" />