Rychlý zásah: Čtení XML aplikace InfoPath přímo Z SPListItem služby SharePoint.

Já jsem byl pracuje na projektu, kde jsem třeba extrahovat přílohy z formuláře aplikace InfoPath. Existují některé dobré zdroje pro analýzu formuláře aplikace InfoPath (které jsou jen soubory XML, Takže je to vlastně docela snadné).

Zatímco byl stavební projekt, Začal jsem stažením formulář aplikace InfoPath a uložit na místní pevný disk. Můj c# kód byl čtení přímo z této instance. Avšak, formuláře aplikace InfoPath jsou opravdu žijící uvnitř knihovna formulářů SharePoint. Jsem trochu poloviny srdce hledání zjistit, jak číst přímo z knihovny a málem vzdala, v takovém případě bych formulář uložili do místního adresáře temp a ji přečíst odtud. Avšak, není třeba projít těmito obručemi, jak si můžete přečíst přímo z knihovny. Tento malý úryvek ukazuje jak:

/// Třídy definice věci zde, včetně:
soukromé Soubor SPFile mySharePointFile; /* Část k seznamu SPList */
// Zde bude více kódu a uvnitř metody třídy máme:
XmlTextReader textReader;
textReader = nové XmlTextReader(mySharePointFile.OpenBinaryStream());

textReader.WhitespaceHandling = WhitespaceHandling.Žádný;

textReader.Read();

// Je-li uzel má hodnotu

Zatímco (textReader.Read())
{

... a tak dále a tak dále...

Klíč kousek výše je, že můžeme číst aplikace InfoPath přímo přes OpenBinaryStream() volání metody na soubor SPFile jako parametr do konstruktoru na XmlTextReader. Funguje to skvěle.

</Konec>

Přihlásit se na mém blogu.

Za mnou na Twitter na http://www.twitter.com/pagalvin

Doplněk Technorati značky:

Jeden myslel na „Rychlý zásah: Čtení XML aplikace InfoPath přímo Z SPListItem služby SharePoint.

  1. Mirek

    Ahoj,
    Potřebuji pomoc v tomto , Mám sharepoint 2007 stránky a aplikace infopath pomocí tabulky s opakováním , Co musím udělat je po uložení formuláře do knihovny formulářů sharepoint, musím se opakovat a uložit data do seznamu pomocí obslužné rutiny události knihovny formulářů SP.

    Každá pomoc je opravdu ocenil.

    Dík

Zanech odpověď

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *