Compartilhar via


Federado resultados Web Parts XSLT

Dica

Este tópico descreve uma funcionalidade que parte o Infrastructure Update for Microsoft Office Servers.   Para baixar a atualização, consulte Descrição da atualização de infra-estrutura SharePoint Server 2007: 15 º de julho de 2008.

Os resultados da pesquisa para federado locais são retornados ao servidor de pesquisa em um formato estruturado XML (por exemplo, RSS ou Atom). Os resultados são formatado e processados na pesquisa federada Web Parts baseia a transformação XSLT (XSLT) especificado.

Este tópico fornece uma visão geral de XSLT o usar como padrão para locais Federados e descreve como você pode personalizar para alteração como os resultados são exibidos na pesquisa federada Web Parts.

Introdução ao XSLT

XSL é uma linguagem programação que transforma XML em outro formato ou estrutura, such as HTML. Isso significa que, em vez de exibir um página da Web com HTML estático, você pode aplicar o XSLT para um documento XML para gerar dinamicamente o HTML. Neste cenário, camada de apresentação também é separada de camada de dados. XSL fornece muitos dos mesmos recursos encontrados em linguagens programação tradicional, como variáveis, funções, iteração e instruções condicionais.

Para obter mais informações sobre XSLT, consulte o seguinte recursos:

XPath é a linguagem usada para especificar quais elementos de XML para transformar e também para calcular valores.

Consulte o seguinte recursos para obter mais informações:

Personalizando o XSLT para um local federado

Antes caminhando através de XSLT específico usado para exibir federado resultados da pesquisa, você deve entender como você pode exibição e modificar a XSLT.

Você pode acessar o XSLT em dois locais:

  • Definição da localidade de federado

  • As propriedades de Web Parts federadas

Onde você escolher para modificar o XSLT depende se você desejar que aplicar globalmente para todos os pesquisa federado Web Parts e em quais a pesquisa federada Web Parts você desejar para exibir os resultados.

Modificando o XSLT para um local federado

O XSLT para uma localidade federada é especificado no campo XSL no Display Properties seção para a localidade federada.

Dica

Você deve ser um administrador Search Service para executar o seguinte procedimento.

Para acessar o campo XSL para a localidade federada

  1. A página Search Administration, clique em Federados locais .

  2. Na página a Manage Federated Locations, clique o Nome para exibição local para a localidade desejar para modificar.

  3. No Display Information seção, desmarcar Use Default Formatting na seção para a pesquisa federada Web Part você desejar para alteração de XSLT para.

  4. Clique na botão de reticências (…) para o campo XSL. Isso abre a janela Text Entry para elemento Xsl XSL a localidade. Você pode modificar o XSLT diretamente nesta janela; No entanto, você pode localizar fácil para copiar a codificar para um arquivo. Em seguida, você pode editar esse arquivo usando um aplicativo such as Microsoft Visual Studio 2008. Após concluir edição de arquivo, você pode copiar a codificar modificado para a janela Text Entry.

  5. Clique em OK para salvar suas alterações, fechar a janela Text Entry e, em seguida, clique OK para atualização de localidade.

    Você pode desfazer as alterações feitas a XSLT e reverter para o usar como padrão XSLT especificado para a localidade selecionando o Use Default Formatting caixa de seleção especificado na etapa 3.

Dica

Você também pode acessar a localidade do XSLT diretamente no arquivo de definição (.fld) localidade.O XSLT é especificado no XSL elemento, contidos o visualização elemento do local definição de esquema.

Você deve escolher esse método quando você desejar o personalizado XSLT a ser aplicado globalmente a maioria ou todos os Web Parts federado configurado para usar uma localidade específica. Isso ocorre porque quando você modificar Xsl elemento da localidade federado, o personalizado XSLT é usado para todos os pesquisa federado Web Parts configurado para usar esse localidade, a menos que um individual é propriedade XSL XSL do Web Part personalizado. Também recomendamos que você use esse método quando personalizar o XSLT para exibir resultados na parte superior Federados Resultados da Web Part. Isso é porque você pode especificar múltiplo locais para esta Web Part e o personalizado XSLT podem ser diferentes para cada localidade.

Modificando a federado Web Part XSLT

O XSLT para uma pesquisa federada Web Part é especificado no Xsl XSL da seção Display Properties no painel ferramenta da Web Part. Conforme mencionado na seção anterior, recomendamos que você use esse método somente para o Federados Resultados da Web Part.

Para acessar XSL propriedade para o Federated Results Web Part

  1. No seu navegador, navegar até os resultados URL da página. Por exemplo:

    http://<ServerName>/results.aspx
    
  2. Clique no link Site Actions e, em seguida, clique Editar Página .

  3. Para a instância Federated Results Web Part você desejar modificar, clique o SETA editar para exibir o menu Web Part e, em seguida, clique Modificar Web Part compartilhada . Isso abre o painel ferramenta Federated Results Web Part.

  4. Clique no SETA Display Properties.

  5. Clear visualização local usar e em seguida, clique Editor XSL .

    Isso abre a janela para propriedade XSL XSL do o Web Part Text Entry. Você pode modificar o XSLT diretamente nesta janela; No entanto, você pode localizar fácil para copiar a codificar para um arquivo. Em seguida, você pode editar esse arquivo usando um aplicativo such as Visual Studio 2008. Após concluir edição de arquivo, você pode copiar a codificar modificado voltar para a janela Text Entry.

  6. salvar para fechar a janela Text Entry e clique em seguida, clique em OK para atualização de instância Federated Results Web Part.

    Você pode desfazer as alterações para o XSLT e reverter voltar para o usar como padrão XSLT especificada para a localidade, selecionando o Use Location Visualization caixa de seleção especificado na etapa 6.

Agora você pode examinar a XSLT usado para exibir federado resultados da pesquisa.

XSLT da Parte da Web federado

Pesquisa da empresa no Microsoft Office do SharePoint Server 2007 dá suporte a dois tipos de federado locais:

Local Search INDEX SharePoint sites local para o servidor pesquisa.

OpenSearch 1.0/1 RSS A alimentação para qualquer remoto página Resultados da pesquisa do servidor, ou qualquer alimentação pesquisável que suporta o padrão OpenSearch e retorna resultados da pesquisa no formato XML estruturado (de exemplo, RSS ou Atom resultados).

Quando os resultados de qualquer tipo localidade são exibidos na pesquisa federada Web Parts, aparecem para ser formatado a mesma. No entanto há diferenças na dados XML retornado para cada tipo localidade, que significa que também há diferenças na usar como padrão XSLT especificado para cada tipo localidade. Esta seção fornece uma visão geral dos resultados de XSLT e XML usados para transformá-lo para ambos os tipos de locais.

Local locais do índice de pesquisa

Você usa o tipo localidade Local Search Index para apresentação federado resultados do local índice pesquisa no servidor pesquisa. Antes de começar a modificar o XSLT aplicada aos resultados XML para este tipo localidade, você deve saber o que é nos resultados dados XML para local tipos localização do índice pesquisa. Você pode exibição o processado de resultados dados XML para este tipo localidade usando um personalizado versão da XSLT. O XSLT para esta tarefa e como modificar o XSLT personalizado é descrito na Como a: Exibir os dados XML retornados pelo seu local federado.

Locais de pesquisa de índice de resultados XML dados

O seguinte amostra de código mostra uma parte dos resultados Federados dados XML para um local localização do índice pesquisa.

<All_Results>
  <Result>
    <id>1</id>
    <title>Local Site</title>
    <hithighlightedsummary>
  Get Started with Windows <c0>SharePoint</c0> Services!
    </hithighlightedsummary>
    <hithighlightedproperties>
      <HHTitle>My Local Site</HHTitle>
      <HHUrl>http://MyLocalSite</HHUrl>
    </hithighlightedproperties>
    <url>http://MyLocalSite</url>
    <urlEncoded>http%3A%2F%2FMyLocalSite</urlEncoded>
    <description>This is a local site.</description>
    <contentclass>STS_Site</contentclass>
    <imageurl imageurldescription="Result of type:document">
  /_layouts/images/STS_Site16.gif
    </imageurl>
  </Result>
…
</All_Results>

Se você estiver familiarizado com o dados XML retornado para o principal Pesquisar Resultados da Web Part, aviso que os resultados dados XML para o local tipo localização do índice pesquisa é muito semelhante e alguns das personalizações para o XSLT para ambos são semelhantes, especificamente para a ocorrência realce elementos, que são:

  • hithighlightedsummary

  • hithighlightedproperties

  • HHTitle

  • HHUrl

For more information about customizing the Core Search Results XSLT, see Empresa de pesquisa principal resultados XSLT transformação and Chapter 3: Customizing and Extending the Microsoft Office SharePoint 2007 Search (Part 1 of 2).

Outra similaridade consta como o nó de alto nível (raiz) é associado com um modelo XSL, que é onde começa a transformação. Eis os locais ' do índice de pesquisa local XSLT para isso:

<xsl:template match="/">  
           <xsl:call-template name="MainTemplate"/>
</xsl:template>

O XSLT para OpenSearch locais, o elemento raiz é associado com um modelo, baseia o formato XML resultados a localidade é retornadas no. Consulte a seção modelos neste tópico para obter mais informações sobre isso. Isso ocorre porque há múltiplo formatos XML para OpenSearch resultados, portanto, o XSLT deve incluir instruções processamento diferentes para diferentes formatos. Desde que os resultados do índice de pesquisa local sempre são retornados no mesmo formato XML, o XSLT só precisa incluir instruções processamento para um formato XML.

No entanto, aside from o chamado diferenças fora aqui, o XSLT para ambos os tipos localidade é semelhante, portanto, mais das informações fornecidas no próximo seção para locais OpenSearch também se aplica ao XSLT para Local Search Index locais.

Locais OpenSearch

Você usa o tipo localidade OpenSearch para apresentação federado resultados a alimentação de RSS para índices pesquisa no remoto servidores pesquisa. Ou usá-lo para apresentação federado resultados de sites da Web que suporte retornando resulta em um formato estruturado XML, such as de RSS ou Atom.

Dados XML OpenSearch de resultados

Como mencionado anteriormente, é útil saber qual é nos resultados da dados XML. Você pode exibição o processado dados XML para resultados a partir de localidade OpenSearch usando um personalizado versão da XSLT. O XSLT para esta tarefa e como modificar o XSLT personalizado é descrito na Como a: Exibir os dados XML retornados pelo seu local federado.

O seguinte amostra de código mostra uma parte dos resultados Federados dados XML para a alimentação de RSS de um remoto pesquisa localização do índice.

Alimentação de RSS resultados dados XML

<rss version="2.0" xmlns:srrt="https://schemas.microsoft.com/WebParts/v3/srchrss/runtime">
  <channel>
    <title>Search Results: sharepoint</title>
    <link>
  http://MyRemoteSite/pages/results.aspx?k=sharepoint
    </link>
    <description>
  Search RSS feed for Microsoft Office SharePoint Server 2007
    </description>
    <language>en-US</language>
    <lastBuildDate>
  Mon, 28 Jan 2008 10:42:03 GMT
    </lastBuildDate>
    <generator>
  Microsoft Office SharePoint Server 2007 RSS Generator
    </generator>
    <ttl>60</ttl>
    <image>
      <title>Search Results: sharepoint</title>
      <url>
  http://MyRemoteSite/pages/_layouts/images/homepage.gif
      </url>
      <link>
  http://MyRemoteSite/pages/results.aspx?k=sharepoint
      </link>
    </image>
    <item>
      <title>
  Get Started with Windows SharePoint Services!
      </title>
      <link>
  http://MyRemoteSite/Lists/Announcements/DispForm.aspx?ID=1
      </link>
      <description>
<div style="margin-top:5px">
<link rel="stylesheet"type="text/css" href="http://MyRemoteSite/_layouts/1033/styles/portal.css" />
<span class="srch-Icon">
<a href="http://MyRemoteSite/Lists/Announcements/DispForm.aspx?ID=1" title="Get Started with Windows SharePoint Services!">
<img src="http://MyRemoteSite/_layouts/images/STS_ListItem16.gif" alt="Result of type: document" border="0" /></a></span>
<span class="psrch-Description">
Get Started with Windows <b>SharePoint</b> Services!
…

Windows <b>SharePoint</b> Services helps you to be more effective by connecting people, information
…
</span>
<p class="srch-Metadata">
<span class="srch-URL">
<a href="http://MyRemoteSite/Lists/Announcements/DispForm.aspx?ID=1" title="Get Started with Windows SharePoint Services!">
http://MyRemoteSite/Lists/Announcements/DispForm.aspx=ID=1
</a></span></p></div>
      </description>
      <author>Denise Smith</author>
      <pubDate>1/28/2008</pubDate>
    </item>
    <item>
    …
    </item>
    …
  </channel>
</rss>

Familiarize-se com os resultados dados XML antes de fazer as modificações de XSLT. Compreendendo a estrutura do que está sendo transformado, você pode fazer mais facilmente sua alteração.

Parâmetros de configuração

Define o primeiro bloco de XSLT vários parâmetros configuração que podem ser passados para a transformação em tempo de execução.

<xsl:param name="ResultsPerPage">3</xsl:param>
<xsl:param name="IsDesignMode">True</xsl:param>
<xsl:param name="UrlMaxLength">50</xsl:param>
<xsl:param name="SummaryMaxLength">300</xsl:param>
<xsl:param name="ShowMoreLink">true</xsl:param>
<xsl:param name="MoreLink"></xsl:param>
<xsl:param name="MoreLinkLabel"></xsl:param>
<xsl:param name="IdPrefix"></xsl:param>
<xsl:param name="WebpartTitle"></xsl:param>
<xsl:param name="DefaultIconDescription"></xsl:param>
<xsl:param name="BrandingIcon"></xsl:param>
<xsl:param name="IsFirstPage">true</xsl:param>

Para obter mais informações sobre os parâmetros em XSLT. see the <xsl:param> Element. Como um exemplo de uma personalização você pode fazer, você pode especificar um link para uma imagem para exibir como a imagem de identificação de marca em barra de título do o Web Part. Para fazer isso, você modifique o parâmetro BrandingIcon BrandingIcon, da seguinte maneira.

<xsl:param name="BrandingIcon">http://MyRemoteServer/_layouts/images/customBrandingImage.gif</xsl:param>

Para obter mais informações sobre como alterar o que é exibido na barra de título. Consulte Como a: Personalizar o título e de identificação de marca de ícone de resultados da pesquisa federado.

Modelos

Agora examine a seção da codificar onde o de alto nível elemento XML (raiz) é associado com um modelo XSL. (Para obter mais informações sobre modelos XSL, consulte o xsl:template element.)

O elemento raiz dos resultados dados XML baseia-se no formato XML resultados a localidade é retornadas no. In the RSS feed results XML data sample, the format is RSS, so the top-level element is <rss>.

A seguir é um bloco codificar a partir de usar como padrão XSLT onde o elemento raiz é associado um modelo, baseia o formato especificado no atributo correspondência do elemento xsl:template.

<xsl:template match="rss">
  <xsl:call-template name="MainTemplate">
    <xsl:with-param name="Type" select="'rss'"/>
  </xsl:call-template>
</xsl:template>
<xsl:template match="rdf:RDF">
  <xsl:call-template name="MainTemplate">
    <xsl:with-param name="Type" select="'rdf'"/>
  </xsl:call-template>
</xsl:template>
<xsl:template match="atom:feed">
  <xsl:call-template name="MainTemplate">
    <xsl:with-param name="Type" select="'atom'"/>
  </xsl:call-template>
</xsl:template>
<xsl:template match="atom2:feed">
  <xsl:call-template name="MainTemplate">
    <xsl:with-param name="Type" select="'atom2'"/>
  </xsl:call-template>
</xsl:template>

Quando o elemento raiz coincide com o valor especificado no atributo match correspondência, o modelo especificado na Call xsl:call-template element é aplicada. Neste exemplo, o mesmo modelo, MainTemplate, é associado com todos os formatos; no entanto o valor especificado para o parâmetro Type tipo passado para MainTemplate, usando o XSL xsl:with-param element, é diferente para cada formato.

MainTemplate

Você pode localizar o modelo MainTemplate MainTemplate pesquisando o seguinte fragmento XSLT.

<xsl:template name="MainTemplate"

Olhando o XSLT em MainTemplate, você pode ver que ele inclui o seguinte processamento instruções:

  • Define o seguinte variáveis, usando xls:variable elements:

    • "Linhas", que contém a coleção de resultados.

    • "RowCount", que contém o número de resultados, calculados, usando o count function.

    • "ChannelTitle", que contém de título da localidade de federado, recuperado do XML usando o XSL:value xsl:value-of element. Como o nó XML contendo Título da localidade de federado é baseado no tipo de formato, o nome nó condicionalmente está selecionado, usando o xsl:choose element em conjunto com o xsl:when element e o Type valor do parâmetro é passada para MainTemplate tipo.

  • Verifica se há quaisquer resultados. Esta etapa incluída somente na parte superior Federados Resultados da Web Part, porque esta Parte da Web aparece somente na primeira página de resultados.

  • Recupera Título da localidade de federado conforme especificado no dados XML e o configura para uma variável nomeado ChannelTitle.

  • Verifica se há at least uma linha de resultados retornados usando o xsl:if element e nesse caso:

    • Especifica o HTML para exibir os dados para barra de título do Web Part o federado, incluindo o título e marca imagem. A imagem de identificação de marca é recuperada com o modelo GetBrandingImage GetBrandingImage especificado na Call xsl:call-template elemento aqui. O modelo GetBrandingImage GetBrandingImage verifica somente se um valor for especificado para o parâmetro BrandingIcon BrandingIcon e em caso afirmativo, retorna.

    • Chama o modelo MainTemplate.body MainTemplate.Body, passando nos vários parâmetros, incluindo o Rows, RowCount e Type tipo parâmetros. O próximo seção fornece mais informações sobre MainTemplate.body.

    • Chama o modelo MoreLinkTemplate MoreLinkTemplate, que especifica o HTML para exibir o link More Results.

MainTemplate.Body

O XSLT nesse modelo itera através de cada resultado e faz o seguinte:

  • Chamadas vários modelos para recuperar do o resultado Título, link e imagem dados XML. Você pode personalizar a imagem exibido para um resultado no GetItemIcon GetItemIcon.

  • Especifica o HTML para exibir o Título, link e imagem. O modelo GetSafeHtml GetSafeHtml é chamado para o título aqui para garantir que nenhum inseguro HTML é usado.

  • Chama MainTemplate.description, descrito o próximo seção.

MainTemplate.Description

O XSLT nesse modelo formata descrição do resultado XML e especifica o HTML para exibi-lo. Ele inclui o seguinte processamento instruções:

  • Chama o modelo GetDescription GetDescription para recuperar descrição do resultado XML.

  • Verifica se o resultado contém um valor para a descrição e nesse caso:

    • Chama o modelo GetPlainTextFromHtml GetPlainTextFromHtml, para remover qualquer XML a partir de descrição. Para retornar HTML dentro de descrição, você pode personalizar o XSLT para remover esta etapa.

    • Chama o modelo TrimIfGreaterThanMax TrimIfGreaterThanMax para reduzir o número de caracteres de descrição para o limite caractere, se um for especificado.

    • Especifica o HTML para exibir a descrição. Você pode personalizar como a descrição é exibida nesta seção do modelo.

Personalizando a XSLT

Há várias situações onde você pode desejar para personalizar o XSLT, como:

  • Você desejar fazer menor muda para a exibir de resultados da pesquisa federado modificando os modelos existentes de usar como padrão XSLT.

  • Você desejar fazer alterações mais complexas de exibir de resultados da pesquisa federado adicionando novos modelos de XSLT.

  • Você precisará modificar o XSLT para exibir uma propriedade você adicionou ao conjunto de propriedades usar como padrão retornada nos resultados do pesquisa federado.

  • Você desejar para condicionalmente alteração a exibir de determinados federado resultados, depending on um dos valores propriedade que é retornado.

  • Você desejar para modificar os modelos exibir para usar um personalizado classe folha de estilo em cascata no local das classes de folha de estilo em cascata usar como padrão.

O seguinte tópicos orientá como modificar os resultados Federados XSLT para vários cenários personalização:

Consulte também

Outros recursos

Visão geral sobre de pesquisa federado