Программно открыть файл шаблона infopath (XSN)

У меня есть библиотека документов в Sharepoint 2010, и я сохранил шаблон форм infopath 2010 (файл XSN). Есть ли способ программно (используя код С#) открыть XSN с помощью объектной модели SharePoint или объектной модели Infopath 2010. Я хочу открыть файл .XSL и изменить некоторый текст, а затем переупаковать файл. Я знаю, что есть некоторые сборки, такие как Microsoft.Deployment.Compression и Microsoft.Deployment.Compression.Cab, которые будут извлекать XSN (cab-файл) и распаковывать их во временную папку. Но для этого потребуется некоторое повышенное разрешение и т. д. и т. д.,

Есть ли лучший способ сделать это с помощью объектной модели infopath 2010 или sharepoint 2010.


person Kannan Karmegam    schedule 11.11.2011    source источник
comment
см. эту ссылку, может быть полезной blog.halan.se/post/   -  person Amir    schedule 01.02.2012


Ответы (1)


Да, вы можете извлечь любой файл из шаблона с помощью InfoPath 2010 OM (требуется, чтобы код был CodeBehind в фактической IP-форме) с OpenFileFromPackage Такой метод:

public XmlDocument ExtractFromPackage(string fileName)
{            
    try 
    {
        XmlDocument doc = new XmlDocument();

        using (Stream stream = Template.OpenFileFromPackage(fileName))
            doc.Load(stream);

        return doc;
    } 
    catch (Exception ex)
    { 
        throw new Exception(string.Format("Error extracting '{0}': {1}", 
            fileName, ex.Message), ex);
    }
}

Код берет поток из упакованного файла и загружает его в XmlDocument (который можно использовать только для XSL-файлов), который затем можно использовать для упрощения манипуляций.

person int32    schedule 11.11.2011