2

SharePoint 2010 にドキュメント ライブラリがあり、infopath 2010 フォーム テンプレート (XSN ファイル) を保存しています。プログラムで (C# コードを使用して) SharePoint オブジェクト モデルまたは Infopath 2010 オブジェクト モデルを使用して XSN を開く方法はありますか。.XSL ファイルを開いてテキストを変更し、ファイルを再パッケージ化したいと考えています。XSN (cab ファイル) を抽出し、それらを一時フォルダーに解凍する および のMicrosoft.Deployment.Compressionようなアセンブリがいくつかあることは知っています。Microsoft.Deployment.Compression.Cabただし、これには昇格した許可などが必要になります。

infopath 2010 または sharepoint 2010 オブジェクト モデルを使用してそれを行うより良い方法はありますか。

4

1 に答える 1

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 ファイルにのみ使用可能) に読み込みます。これを使用すると、より簡単に操作を行うことができます。

于 2011-11-11T08:01:43.797 に答える