Проблема SharePoint XSLT - - PullRequest
       14

Проблема SharePoint XSLT -

0 голосов
/ 27 февраля 2010

Я пытаюсь выделить некоторые результаты SharePoint XSLT. Ниже приведен XML, который я получаю. Проблема, которую я получаю, состоит в том, что блоки сопоставления шаблонов не совпадают с дочерними узлами единой системы обмена сообщениями. Если кто-то может увидеть, где я иду не так, это было бы здорово.

Спасибо

Chhris

        <rows>
          <row>
            <LastModifiedTime>02/25/2010 18:32:25</LastModifiedTime>
            <RANK>325</RANK>
            <TITLE>UMUK Win At The Mobile Entertainment</TITLE>
            <AUTHOR>SVR08-002\Administrator</AUTHOR>
            <CREATED>02/25/2010 18:32:22</CREATED>
            <PATH>http://svr08-002:7005/Lists/FrontPageNews/DispForm.aspx?ID=3</PATH>
            <HitHighlightedSummary>a
              <c0>UM</c0> UK won the category of Best Music Label 2009 at the 4th annual ME (Mobile Entertainment) Awards C <ddd/>
            </HitHighlightedSummary>
          </row>
        </rows>

и вот XSLT, который у меня есть.

          <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >

        <xsl:template match="/">

          <table class="ICS_SearchTable" cellpadding="0" cellspacing="0" width="100%">
            <xsl:for-each select="rows/row">

              <xsl:variable name="Ext">
                <xsl:call-template name="get-file-extension">
                  <xsl:with-param name="path" select="substring-before(PATH, '?')" />
                </xsl:call-template>
              </xsl:variable>      
              <tr>
                <td width="10%">

                </td>
                <td>
                    <div class="ICS_SearchResultItem">
                        <div class="ICS_SearchResultItemImage">
                        <img src="/Style Library/UMIGlobe/Styles/Images/Common/umgi-{$Ext}.png" alt="{$Ext}"/>
                        </div>
                        <div class="ICS_SearchResultItemTitle">
                                    <a href="{PATH}"><xsl:value-of select="TITLE"/></a>
                        </div>
                        <div class="ICS_SearchResultItemDesc">
                      <xsl:choose>
                      <xsl:when test="HitHighlightedSummary[. != '']">
                         <xsl:call-template name="HitHighlighting">
                            <xsl:with-param name="hh" select="HitHighlightedSummary" /> 
                         </xsl:call-template> 
                      </xsl:when>   
                       <xsl:when test="DESCRIPTION[. != '']">
                          <xsl:value-of select="DESCRIPTION"/>     
                       </xsl:when>     
                      </xsl:choose>
                        </div>
                        <div class="ICS_SearchResultItemLink">
                                    <a href="{PATH}"><xsl:value-of select="PATH"/></a> - <xsl:value-of select="AUTHOR" /> - <xsl:value-of select="LastModifiedTime"/>
                      <xsl:call-template name="DisplaySize">
                        <xsl:with-param name="size" select="SIZE" />
                      </xsl:call-template>                                          
                        </div>                                                                              
                            </div>                                  
                </td>
              </tr>
            </xsl:for-each>
          </table>  
        </xsl:template>

        <xsl:template name="HitHighlighting">
          <xsl:param name="hh" />
          <xsl:apply-templates select="$hh"/>
        </xsl:template>

        <xsl:template match="ddd">
          &#8230;
        </xsl:template>
        <xsl:template match="c0">
          <b>
            <xsl:value-of select="."/>
          </b>
        </xsl:template>
        <xsl:template match="c1">
          <b>
            <xsl:value-of select="."/>
          </b>
        </xsl:template>
        <xsl:template match="c2">
          <b>
            <xsl:value-of select="."/>
          </b>
        </xsl:template>
        <xsl:template match="c3">
          <b>
            <xsl:value-of select="."/>
          </b>
        </xsl:template>
        <xsl:template match="c4">
          <b>
            <xsl:value-of select="."/>
          </b>
        </xsl:template>
        <xsl:template match="c5">
          <b>
            <xsl:value-of select="."/>
          </b>
        </xsl:template>
        <xsl:template match="c6">
          <b>
            <xsl:value-of select="."/>
          </b>
        </xsl:template>
        <xsl:template match="c7">
          <b>
            <xsl:value-of select="."/>
          </b>
        </xsl:template>
        <xsl:template match="c8">
          <b>
            <xsl:value-of select="."/>
          </b>
        </xsl:template>
        <xsl:template match="c9">
          <b>
            <xsl:value-of select="."/>
          </b>
        </xsl:template>  

      <!-- The size attribute for each result is prepared here -->
      <xsl:template name="DisplaySize">
        <xsl:param name="size" /> 
        <xsl:if test='string-length($size) &gt; 0'>       
         <xsl:if test="number($size) &gt; 0">
         -
          <xsl:choose>
           <xsl:when test="round($size div 1024) &lt; 1"><xsl:value-of select="$size" /> Bytes</xsl:when>
           <xsl:when test="round($size div (1024 *1024)) &lt; 1"><xsl:value-of select="round($size div 1024)" />KB</xsl:when>
           <xsl:otherwise><xsl:value-of select="round($size div (1024 * 1024))"/>MB</xsl:otherwise>
          </xsl:choose>    
         </xsl:if>
        </xsl:if>
      </xsl:template>  

        <xsl:template name="get-file-extension">
          <xsl:param name="path" />
          <xsl:choose>
            <xsl:when test="contains( $path, '/' )">
              <xsl:call-template name="get-file-extension">
                <xsl:with-param name="path" select="substring-after( $path, '/' )" />
              </xsl:call-template>
            </xsl:when>
            <xsl:when test="contains( $path, '.' )">
              <xsl:call-template name="get-file-extension">
                <xsl:with-param name="path" select="substring-after( $path, '.' )" />
              </xsl:call-template>
            </xsl:when>
            <xsl:otherwise>
              <!-- SET THE PATH IMAGE SRC -->
              <xsl:choose>
                <xsl:when test="$path = 'uk' or $path = 'org' or $path = 'com' or $path = 'net' or $path = 'biz' or $path = 'gov'">
                  <xsl:text>url</xsl:text>
                </xsl:when>
                <xsl:otherwise>
                  <xsl:value-of select="$path" />
                </xsl:otherwise>
              </xsl:choose>
            </xsl:otherwise>
          </xsl:choose>
        </xsl:template>  
      </xsl:stylesheet>

1 Ответ

1 голос
/ 03 марта 2010

Что вы подразумеваете под "дочерними узлами единой системы обмена сообщениями"?

Может быть, я что-то упускаю, но нет узлов с именем "UM", только текст. Итак, вы имеете в виду, что вы хотите сопоставить узел, который содержит текст «UM» ... другими словами <c0>UM</c0>?

В моем случае, когда я запускаю вашу таблицу стилей, она соответствует узлу <c0> и записывает узел <b>.

<b>UM</b> UK won the category of Best Music Label 2009 at the 4th annual ME (Mobile Entertainment) Awards C

Что у тебя не работает?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...