Rask Hit: Lese InfoPath XML direkte fra SPListItem i SharePoint

Jeg vært arbeider på et prosjekt der jeg trenger å ekstrakt vedlegg fra et InfoPath-skjema. Det er noen gode ressurser for analyse av InfoPath-skjemaer (hvilke er bare XML-filer, så det er faktisk ganske lett).

Mens jeg var å bygge opp prosjektet, Jeg startet med å laste ned et InfoPath-skjema og lagre den på harddisken min lokale. Leste meg c# koden direkte fra forekomsten. Men, skjemaene InfoPath virkelig lever i et SharePoint-skjemabibliotek. Jeg gjorde en liten halv hearted søke å finne ut hvordan å lese den direkte fra biblioteket og ga nesten opp, da jeg ville ha lagret skjemaet til en lokal temp-mappe og lese den der. Men, Det er ikke nødvendig å gå gjennom de ringer som du kan lese den direkte fra biblioteket. Denne lille kodebiten viser hvordan:

/// Klassen definisjon ting her, inkludert:
privat SPFile mySharePointFile; /* En del av en SPList */
// Mer kode her og inne en metode i klassen har vi:
XmlTextReader textReader;
textReader = nye XmlTextReader(mySharePointFile.OpenBinaryStream());

textReader.WhitespaceHandling = WhitespaceHandling.Ingen;

textReader.Read();

// Hvis noden har verdi

mens (textReader.Read())
{

... og så videre og så videre...

De viktig bit ovenfor er at vi kan lese i InfoPath direkte via OpenBinaryStream() metoden ringe på SPFile som en parameter til konstruktøren av XmlTextReader. Den arbeider stor.

</slutten>

Abonner på bloggen min.

Følg meg på Twitter på http://www.twitter.com/pagalvin

Technorati Merkelapper:

En tenkte på “Rask Hit: Lese InfoPath XML direkte fra SPListItem i SharePoint

  1. nesreen

    hei,
    Jeg trenger hjelp i dette , Jeg har sharepoint 2007 nettstedet og infopath med en gjentatt tabell , det jeg trenger å gjøre er når skjemaet er lagret i et sharepoint-skjemabibliotek jeg trenger å sløyfe og lagre dataene i en liste med SP skjemaet biblioteket hendelsesbehandling.

    Alle hjelpe er virkelig verdsatt.

    takk

    Svar

legg igjen et svar

e-postadressen din vil ikke offentliggjøres. Obligatoriske felt er merket *