Hurtig Hit: Læsning InfoPath XML direkte fra en SPListItem i SharePoint

Jeg er blevet arbejdet på et projekt, hvor jeg nødt til at ekstrakt vedhæftede filer fra en InfoPath-formular. Der er nogle gode ressourcer for parsing InfoPath-formularer (der er kun XML-filer, så det er faktisk ganske let).

Mens jeg opbygge projektet, Jeg startede ved at downloade en InfoPath-formular og gemme den til min lokale harddisk. Min c# kode var læse direkte fra denne instans. Dog, InfoPath-formularer virkelig bor inde i et SharePoint-formularbibliotek. Jeg har en lille halv hjerter søgning for at finde ud af at læse det direkte fra biblioteket og gav næsten op, i hvilket tilfælde jeg ville have gemt formen til en lokal temp-mappe og læse den derfra. Dog, der er ingen grund til at gå gennem disse tøndebånd, som du kan læse det direkte fra biblioteket. Denne lille kodestykke viser hvordan:

/// Klasse definition stuff her, herunder:
privat SPFile mySharePointFile; /* Del af en SPList */
// Mere kode går her og indvendige en metode af klasse vi har:
XmlTextReader textReader;
textReader = nye XmlTextReader(mySharePointFile.OpenBinaryStream());

textReader.WhitespaceHandling = WhitespaceHandling.Ingen;

textReader.Read();

// Hvis noden har værdi

mens (textReader.Read())
{

... og så videre...

De vigtigste bit frem er at vi kan læse InfoPath direkte via OpenBinaryStream() metoden kalder på SPFile som en parameter til entreprenøren på XmlTextReader. Det virker fint.

</slutningen>

Abonner på min blog.

Følg mig på kvidre på http://www.twitter.com/pagalvin

Technorati Tags:

Man troede på ”Hurtig Hit: Læsning InfoPath XML direkte fra en SPListItem i SharePoint

  1. Lone Dahl

    Hej,
    Jeg har brug for hjælp i denne , Jeg har sharepoint 2007 websted og infopath med en gentaget tabel , Hvad jeg behøver at gøre er, når formularen gemmes i biblioteket sharepoint former jeg nødt til at sløjfe og gemme data på en liste ved hjælp af SP form bibliotek hændelseshandler.

    Enhver hjælp er virkelig værdsat.

    Tak

    Svar

Efterlad et svar

Din e-mail adresse vil ikke blive offentliggjort. Krævede felter er markeret *