2011-05-10 59 views
1

我有一個查詢Web服務的InfoPath 2010表單。 Web服務期望整個InfoPath表單作爲XML字符串參數。通過XML字符串我的意思是在格式將整個InfoPath表單傳遞到Web服務(不提交)

<my:myFields xmlns:my=...> 
    <my:Name>UserName</my:Name> 
    ... 
</my:myFields> 

Web服務,然後將處理字符串和結果返回給InfoPath表單的字符串。

我嘗試過傳遞根元素「。」,但在Web服務結束時,我收到的值僅由\ r \ n和\ t格式化。關於如何傳遞XML標籤和值的任何想法。

回答

2

我已經通過將列表名稱和表單名稱傳遞給Web服務來找到解決方法。在SharePoint中託管的Web服務將獲取表單的XML。

下面是參考代碼:

public class InfoPathHelper 
{ 
    private string _listName; 
    private string _fileUrl; 

    public InfoPathHelper(string listName, string fileName) 
    { 
     _listName = listName; 
     _fileUrl = string.Format("{0}/{1}.xml", listName, fileName); 
    } 

    public string GetFormXml() 
    { 
     using (SPWeb web = SPContext.Current.Web) 
     { 
      SPList lib = web.Lists[_listName]; 
      SPFile file = lib.RootFolder.Files[_fileUrl]; 
      XmlDocument doc = new XmlDocument(); 
      doc.Load(file.OpenBinaryStream()); 
      return doc.OuterXml; 
     } 
    } 
}