Rýchly zásah: Čítanie InfoPath XML priamo z SPListItem v službe SharePoint

Bol som pracovať na projekte, kde som potrebné extrahovať prílohy z formulára programu InfoPath. Existujú nejaké dobré zdroje pre parsovanie formuláre programu InfoPath (ktoré sú len súbory vo formáte XML, Takže je to vlastne celkom jednoduché).

Keď som bola budova projektu, Začal som sťahovať formulár programu InfoPath a uložením na môj lokálny pevný disk. Kód c# čítal priamo z tejto inštancie. Avšak, Formuláre programu InfoPath sú naozaj žijú vnútri knižnice formulárov služby SharePoint. Urobil trochu polovice srdce vyhľadávanie a zistite, ako čítať priamo z knižnice a takmer vzdal, v takom prípade by som uložiť formulár do lokálnej adresár a prečítajte si ju odtiaľ. Avšak, nie je potrebné ísť cez tie obruče, ako si môžete prečítať priamo z knižnice. Tento malý úryvok ukazuje ako:

/// Triedy definícia veci tu., vrátane:
súkromné Súbor SPFile mySharePointFile; /* Súčasťou SPList */
// Viac kód sem a vnútri metódu triedy máme:
XmlTextReader TextWriter;
TextWriter = nové XmlTextReader(mySharePointFile.OpenBinaryStream());

textReader.WhitespaceHandling = WhitespaceHandling.Žiadna;

textReader.Read();

// Ak uzol má hodnotu

zatiaľ čo (textReader.Read())
{

... a tak ďalej a tak ďalej...

Kľúč kúsok vyššie je, že môžeme čítať InfoPath priamo cez OpenBinaryStream() spôsob volania na súbor SPFile ako parameter konštruktor XmlTextReader. Funguje to skvele.

</koniec>

Vyberajte môj blog.

Nasledujte ma na stebėtų na http://www.twitter.com/pagalvin

Technorati Tags:

Jeden myslel na "Rýchly zásah: Čítanie InfoPath XML priamo z SPListItem v službe SharePoint

  1. nesreen

    ahoj,
    Potrebujem pomoc v tejto , Mám sharepoint 2007 mieste a infopath s opakujúcej sa tabuľky , čo musím urobiť, je po uložení formulára do knižnice lokality sharepoint formuláre potrebujem slučky a uložiť údaje do zoznamu pomocou SP formulár knižnica obsluhy udalostí.

    Každá pomoc je naozaj ocenil.

    vďaka

    Odpoveď

nechať odpoveď

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *