以编程方式打开infopath模板文件(XSN)

时间:2011-11-11 00:57:12

标签: sharepoint-2010 infopath2010

我在Sharepoint 2010中有一个文档库,并存储了infopath 2010表单模板(XSN文件)。有没有办法以编程方式(使用C#代码)使用SharePoint对象模型或Infopath 2010对象模型打开XSN。我想打开.XSL文件并更改一些文本,然后重新打包文件。我知道有一些程序集,如Microsoft.Deployment.Compression和Microsoft.Deployment.compression.cab,它们将解压缩XSN(cab文件)并将它们解压缩到临时文件夹。但这需要一些提升许可等等,

使用infopath 2010或sharepoint 2010对象模型是否有更好的方法。

1 个答案:

答案 0 :(得分:0)

是的,您可以使用OpenFileFromPackage方法使用InfoPath 2010 OM(要求代码是实际IP表单中的CodeBehind)从模板中提取任何文件:

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文件),然后您可以使用它来更轻松地进行操作。