Программно открыть файл шаблона Infopath (XSN) - PullRequest
2 голосов
/ 11 ноября 2011

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

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

1 Ответ

0 голосов
/ 11 ноября 2011

Да, вы можете извлечь любой файл из шаблона с помощью InfoPath 2010 OM (требуется, чтобы в реальной IP-форме был код CodeBehind) с помощью 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), который затем можно использовать для упрощения манипуляций.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...