Веб-часть MOSS Content Query itemstyle.xsl - PullRequest
1 голос
/ 23 апреля 2010

У меня есть веб-часть запроса контента (CQWP), которая извлекает URL и заголовок из списка ссылок на новости. CQWP использует стиль XSLT Orange.News.Links, определенный в ItemStyle.xsl.

Мне нужно отсортировать поле title @ Title0, как закомментировано ниже, потому что оно вызывает ошибку.

Кто-нибудь знает, что является причиной этой ошибки? - Большое спасибо. Код XSLT ниже:

<xsl:template name="Orange.News.Links" match="Row[@Style='Orange.News.Links']" mode="itemstyle">
     <xsl:param name="CurPos" />
     <xsl:param name="Last" />       

   <xsl:variable name="SafeLinkUrl">
            <xsl:call-template name="OuterTemplate.GetSafeLink">
                <xsl:with-param name="UrlColumnName" select="'LinkUrl'"/>
            </xsl:call-template>
        </xsl:variable>
        <xsl:variable name="DisplayTitle">
            <xsl:call-template name="OuterTemplate.GetTitle">
                <xsl:with-param name="Title" select="@URL"/>
                <xsl:with-param name="UrlColumnName" select="'URL'"/>
            </xsl:call-template>
        </xsl:variable>

        <xsl:variable name="LinkTarget">
            <xsl:if test="@OpenInNewWindow = 'True'" >_blank</xsl:if>
        </xsl:variable>

        <xsl:variable name="SafeImageUrl">
            <xsl:call-template name="OuterTemplate.GetSafeStaticUrl">
                <xsl:with-param name="UrlColumnName" select="'ImageUrl'"/>
            </xsl:call-template>
        </xsl:variable>

        <xsl:variable name="Header">
  <xsl:if test="$CurPos = 1">
   <![CDATA[<ul class="list_Links">]]>  
  </xsl:if>
  </xsl:variable>

  <xsl:variable name="Footer">
   <xsl:if test="$Last = $CurPos">
    <![CDATA[</ul>]]>   
    </xsl:if>
  </xsl:variable> 

  <xsl:value-of select="$Header" disable-output-escaping="yes" />


  <li> 
   <a>
       <xsl:attribute name="href">
        <xsl:value-of select="substring-before($DisplayTitle,', ')"></xsl:value-of>
       </xsl:attribute>
       <xsl:attribute name="title">
        <xsl:value-of select="@Description"/>
           </xsl:attribute>
        <!--    <xsl:sort select="@Title0"/> -->
       <xsl:value-of select="@Title0">
       </xsl:value-of>
   </a>
  </li>


  <xsl:value-of select="$Footer" disable-output-escaping="yes" />


    </xsl:template> 

1 Ответ

1 голос
/ 23 апреля 2010

Мне нужно отсортировать поле title @ Title0, как закомментировано ниже, потому что оно вызывает ошибку.

Кто-нибудь знает, что вызывает эту ошибку?

Да, <xsl:sort/> может быть только дочерним узлом <xsl:apply-templates> или <xsl:for-each><xsl:perform-sort> в XSLT 2.0).

Рекомендация : принятьпо крайней мере, мини-курс по XSLT и XPath, чтобы вы, по крайней мере, поняли основные понятия.

...