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

本文关键字:文件 XSN 编程 方式打 infopath | 更新日期: 2023-09-27 18:14:15

我在Sharepoint 2010中有一个文档库并存储了infopath 2010表单模板(XSN文件)。是否有一种方法以编程方式(使用c#代码)使用SharePoint对象模型或Infopath 2010对象模型打开XSN ?我想打开. xsl文件并更改一些文本,然后重新打包该文件。我知道有一些程序集,如Microsoft.Deployment.CompressionMicrosoft.Deployment.Compression.Cab,将提取XSN (cab文件)并将其解压缩到临时文件夹中。但是这需要一些更高的权限等等,等等,

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

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

是的,您可以使用InfoPath 2010 OM从模板中提取任何文件(要求代码在实际的IP-Form中是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文件)中,然后您可以使用它更容易地进行操作。