我有以下XSLT部分菜单代码,它可以正常检索项目。但我想用项目名称替换项目查询如何?
<!--<xsl:if test="contains($EnabledTemplates, concat('!', @template, '!')) ">-->
<xsl:for-each select="$root/item[contains($EnabledTemplates, concat('!', @template, '!'))]">
<xsl:sort select="@sortorder" data-type="number" />
<xsl:variable name="IsHaveChild" select="boolean(./item)" />
<xsl:variable name="IsSelected" select="boolean(./descendant-or-self::item[@id=$sc_currentitem/@id])" />
<xsl:variable name="IsShow" select="boolean(sc:fld($IsHideFieldName,.)!=1)" />
<xsl:variable name="IsCurrent" select="boolean(@id=$sc_currentitem/@id)" />
<sc:sec />
答案 0 :(得分:1)
您想按名称过滤项目吗?
尝试这样的事情:
[contains(@name, 'some text')]
答案 1 :(得分:0)
对于您的查询,您可以选择 XPath 和 Sitecore查询。后者是XPath的Sitecore实现,它更易读,允许您使用项目名称而不是XPath语法。
但是,Sitecore查询不能直接放在XSL元素的select
属性中,它只适用于Sitecore XSL帮助函数,例如sc:item
(请不要使用.
中的sc:item
.
函数指定需要应用查询的上下文项,<!-- using XPath -->
<xsl:value-of select="/item[@key='sitecore']/item[@key='content']" />
<!-- using Sitecore query -->
<xsl:value-of select="sc:item('/sitecore/content', .)" />
代表当前项。)
{{1}}