1

我有一个查询 Web 服务的 InfoPath 2010 表单。Web 服务需要将整个 InfoPath 表单作为 XML 字符串参数。XML字符串是指格式上的字符串

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

然后,Web 服务将处理该字符串并将结果返回到 InfoPath 表单。

我试图传递根元素“。”,但在 Web 服务端,我收到的值仅由 \r\n 和 \t 格式化。关于如何传递 XML 标记和值的任何想法。

4

1 回答 1

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;
        }
    }
}
于 2011-05-19T12:00:17.600 回答