Batida rápida: Lendo XML do InfoPath directamente de um SPListItem no SharePoint

Estou trabalhando em um projeto onde eu preciso extrair anexos de um formulário do InfoPath. Existem alguns bons recursos para análise de formulários do InfoPath (que são apenas arquivos XML, Portanto, é realmente muito fácil).

Enquanto eu estava construindo o projeto, Comecei a baixar um formulário do InfoPath e salvando-o meu disco rígido local. Meu código c# estava lendo diretamente de instância. No entanto, os formulários do InfoPath são realmente vivendo dentro de uma biblioteca de formulários do SharePoint. Eu fiz um pouco meio coração pesquisa para descobrir como se lê diretamente da biblioteca e quase desisti, Nesse caso eu teria salvo o formulário para um diretório temporário local e lê-lo de lá. No entanto, Não há nenhuma necessidade de atravessar arcos como você pode lê-lo diretamente da biblioteca. Este pequeno trecho de código mostra como:

/// Coisas de definição de classe aqui, incluindo:
privada SPFile t: Microsoft.SharePoint.SPFile mySharePointFile; /* Parte de um SPList */
// Mais código vai aqui e dentro de um método da classe temos:
XmlTextReader textReader;
textReader = Novo XmlTextReader(mySharePointFile.OpenBinaryStream());

textReader.WhitespaceHandling = WhitespaceHandling.Nenhum;

TextReader();

// Se o nó tiver valor

ao mesmo tempo (TextReader())
{

... e assim por diante e assim por diante...

Eles-chave bit acima é que podemos ler o InfoPath diretamente via o OpenBinaryStream() chamada de método sobre o SPFile como um parâmetro para o Construtor em XmlTextReader. Ele funciona muito bem.

</fim>

Subscreva ao meu blog.

Siga-me no Twitter em http://www.twitter.com/pagalvin

Technorati Tags:

Um pensamento em "Batida rápida: Lendo XML do InfoPath directamente de um SPListItem no SharePoint

  1. Valderi

    Oi,
    Preciso de ajuda nisso , Eu tenho o sharepoint 2007 site e infopath com uma tabela de repetição , o que preciso fazer é quando o formulário é salvo para a biblioteca de formulários do sharepoint que preciso de loop e salvar os dados em uma lista usando o manipulador de eventos da biblioteca de formulário SP.

    Qualquer ajuda é muito apreciada.

    Obrigado

    Resposta

Deixar uma resposta

seu endereço de e-mail não será publicado. Campos obrigatórios são marcados *