E aí, pessoal?

Neste tutorial vou mostrar como exibir o conteúdo de um XML em uma página do SharePoint, usando a web part XML Viewer e customizando a exibição com XSLT.

Estou usando o SharePoint Foundation 2010 (hospedado gratuitamente, conforme a dica que dei neste outro post) e como exemplo vou exibir os últimos posts deste blog (usando o feed RSS).

Adicionando a web part XML Viewer

Na página onde o conteúdo vai ser exibido, clique em Site Actions » Edit Page.

Menu Site Actions > Edit Page

Clique em Add a Web Part (ou Insert » Web Part no topo) e escolha a web part XML Viewer (está na categoria Content Rollup). Clique em Add.

Adicione a web part XML Viewer

Configurando a web part

Clique no link open the tool pane, ou no menu dropdown da web part clique em Edit Web Part.

No painel de opções da web part você pode digitar o XML que vai usar, ou colocar o link pra ele (pode ser um XML externo ou que esteja na própria aplicação). No nosso caso vamos usar o RSS do blog: http://blog.dmatoso.com/feed/

Inserindo o link para o XML

Coloque o link e clique em Apply. A web part vai mostrar todo o texto do XML, sem formatação. No good.

XML exibido sem formatação

Customizando a formatação com XSLT

Nas opções da web part você pode informar um XSL (seja digitando diretamente clicando em XSL Editor... ou informando um link para um arquivo XSL) que será usado para transformar o XML em HTML e deixar bonitinho no browser.

Para o nosso exemplo vamos usar o XSLT abaixo:

<?xml version='1.0' encoding="utf-8" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="html" />
 <xsl:template match="rss/channel">
    <ul>
      <xsl:apply-templates select="item" />
    </ul>
  </xsl:template>
 <xsl:template match="item">
    <li>
      <p>
        <a href="{link}">
          <xsl:value-of select="title" />
        </a>
      </p>
      <p>
        <xsl:value-of select="description" disable-output-escaping="yes"/>
      </p>
    </li>
  </xsl:template>
</xsl:stylesheet>

Digite este conteúdo no XSL Editor... (ou salve um arquivo .xslt e informe o link). Veja o resultado:

XML formatado pelo XSLT

Much better!

Explicando o XSLT

Como pode notar, o XSL é também um XML.

xsl:stylesheet é a raiz do documento.

xsl:output diz qual vai ser o resultado da transformação (no nosso caso, um HTML).

xsl:template informa regras que serão aplicadas quando um nó do XML casa com o seletor do atributo match. No nosso exemplo, o primeiro template, que casa com "rss/channel" simplesmente abre e fecha a lista (<ul>...</ul>), e dentro dela aplica outro template (que casa com "item"). Como um feed possui vários nós "item", este template será aplicado várias vezes, gerando os ítens da lista (<li>...</li>).

Mais abaixo, no template que casa com "item", usamos a tag xsl:value-of para inserir valores do XML no HTML resultante, como o título do post e a descrição (resumo).

Conclusão

A web part XML Viewer torna bem fácil a tarefa de trazer conteúdos externos para uma página do SharePoint, e o XSLT dá total liberdade para formatar esse conteúdo como quiser. Vale lembrar que o SharePoint permite usar XSLT para formatar outros conteúdos, como uma web part que traz ítens de uma lista, então vale a pena aprender como esse formato funciona.

[]'s