1

我这里有一个小的 XSLT 代码,但我不理解其中一个表达式,而且我的一个附加值也不起作用。

这是我所拥有的:

    <xsl:choose>
     <xsl:when test="contentclass[. = 'STS_ListItem_DocumentLibrary'] and {imageurl/@imageurldescription} = 'Web Page'">
        <div class="srch-Icon" id="{concat($currentId,'_Icon')}">
            <img align="absmiddle" src="/_layouts/images/itdl.png" border="0" alt="Document Library" />
        </div>
     </xsl:when>
     <xsl:otherwise>
         <div class="srch-Icon" id="{concat($currentId,'_Icon')}">
          <img align="absmiddle" src="{imageurl}" border="0" alt="{imageurl/@imageurldescription}" />
        </div>   
      </xsl:otherwise>

基本上如你所见,这个表达式是什么意思 => "[.="?

其次,这确实有效,有人知道为什么吗?

{imageurl/@imageurldescription} = 'Web Page'

为什么问题会存在?该值存在 100%,因为默认调用它有效(否则我确实在那里获得价值)

4

1 回答 1

1

{ }围绕普通元素的属性中的表达式将使 XSLT 引擎对其进行评估,而不是将其视为文本。在控制元素 ( <xsl:...) 上的大多数属性中,不需要大括号,如果包含它们会出现语法错误。

该部分的意思是:只要其内容为,就contentclass[. = 'STS_ListItem_DocumentLibrary']匹配所有子元素。它相当于:contentclass"STS_ListItem_DocumentLibrary"contentclass = 'STS_ListItem_DocumentLibrary'

阅读更多:

于 2012-11-08T09:46:53.313 回答