最近项目应用infopath表单来收集数据,然后客户要求不但要把数据收集到表单库,还要让一些特殊的字段提交到自定义列表库(而且这一部分在infopath里是一个重复节)。同事提示我可以用读取xml的方法。
开始的时候使用xmlDoc.Load(fileUrl),但是读出来的xml文件不是infopath中的xml文件,而是一个网页形式的文件,不符合xml规范。
还是kanejoy的博客帮了我的大忙,地址如下:
http://blog.joycode.com/kaneboy/archive/2005/03/03/45206.aspx>
我的方法基本是这样的:
首先是SPListItem item=infopath项
然后
SPFile myfile = item.File;
Stream stream = new MemoryStream(myfile.OpenBinary());
XmlTextReader reader = new XmlTextReader(stream);
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(reader);
这样xmlDoc.Load()参数为字节流的时候就没有问题,接下来就可以对xml进行分析了。