2011-11-11 59 views
2

我在Sharepoint 2010中有一個文檔庫並存儲了infopath 2010表單模板(XSN文件)。有沒有通過編程方式(使用C#代碼)使用SharePoint對象模型或Infopath 2010對象模型打開XSN的方法。我想打開.XSL文件並更改一些文本,然後重新打包該文件。我知道有一些程序集像Microsoft.Deployment.Compression和Microsoft.Deployment.compression.cab將提取XSN(cab文件)並將它們解壓縮到臨時文件夾。但是這需要一些提升權限等,以編程方式打開infopath模板文件(XSN)

有沒有更好的方式來使用infopath 2010或SharePoint 2010對象模型。

+0

看到這個鏈接,可能是有用的http://blog.halan.se/post/How-to-create-a-new-Form-from-Template-in-a-Form-Library-programmatically.aspx#評論 – Amir

回答

0

是的,你可以提取與在InfoPath 2010 OM模板的任何文件(需要代碼是在實際的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文件),然後您可以使用它更輕鬆地進行操作。

+0

謝謝安德烈亞斯。將嘗試一下。 – Kannabiran