Quick Hit: Lestur InfoPath XML beint úr SPListItem í SharePoint

I’m been working on a project where I need to extract attachments from an InfoPath form. There are some good resources for parsing InfoPath forms (sem eru bara XML skrár, svo það er í raun alveg auðvelt).

Á meðan ég var að byggja upp verkefni, I started by downloading an InfoPath form and saving it to my local hard drive. My c# code was reading directly from that instance. Hins, the InfoPath forms are really living inside a SharePoint forms library. I did a little half hearted searching to find out how to read it directly from the library and almost gave up, in which case I would have saved the form to a local temp directory and read it from there. Hins, there’s no need to go through those hoops as you can read it directly from the library. This little snippet shows how:

/// Class definition stuff here, þ.mt:
einkaaðila SPFile mySharePointFile; /* Part of an SPList */
// More code goes here and inside a method of the class we have:
XmlTextReader textReader;
textReader = XmlTextReader(mySharePointFile.OpenBinaryStream());

textReader.WhitespaceHandling = WhitespaceHandling.Ekkert;

textReader.Read();

// If the node has value

while (textReader.Read())
{

… and so on and so forth …

They key bit above is that we can read the InfoPath directly via the OpenBinaryStream() method call on the SPFile as a parameter to the constructor on XmlTextReader. It works great.

</enda>

Gerast áskrifandi að bloggið mitt.

Fylgdu mér á Twitter á http://www.twitter.com/pagalvin

Technorati Tags:

Ein hugsun um „Quick Hit: Lestur InfoPath XML beint úr SPListItem í SharePoint

  1. nesreen

    hi,
    I need help in this , I have sharepoint 2007 site and infopath with a repeating table , what I need to do is once the form is saved to the sharepoint forms library I need to loop and save the data to a list using SP form library event handler.

    Any help is really appreciated.

    Takk

    Svara

Eftir svar

Netfangið þitt verður ekki birt. Nauðsynlegir reitir eru merktir *