我有一个InfoPath 2010表单,用于查询Web服务。 Web服务期望整个InfoPath表单作为XML字符串参数。用XML字符串表示格式为
的字符串<my:myFields xmlns:my=...>
<my:Name>UserName</my:Name>
...
</my:myFields>
然后,Web服务将处理该字符串并将结果返回到InfoPath表单。
我试图传递根元素“。”,但是在Web服务端,我收到的格式仅为\ r \ n和\ t \ t。关于如何传递XML标签和值的任何想法。
答案 0 :(得分: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;
}
}
}