Paul 的个人资料Paul Galvin's SharePoint...日志列表SkyDrive 工具 帮助

日志


10月27日

Quick Hit: Reading InfoPath XML Directly From an SPListItem in SharePoint

I’m been working on a project where I need to extract attachments from an InfoPath form.  There are some good resources for parsing InfoPath forms (which are just XML files, so it’s actually quite easy). 

While I was building up the project, I started by downloading an InfoPath form and saving it to my local hard drive.  My c# code was reading directly from that instance.  However, the InfoPath forms are really living inside a SharePoint forms library.  I did a little half hearted searching to find out how to read it directly from the library and almost gave up, in which case I would have saved the form to a local temp directory and read it from there.  However, there’s no need to go through those hoops as you can read it directly from the library.  This little snippet shows how:

/// Class definition stuff here, including:
private SPFile mySharePointFile; /* Part of an SPList */
// More code goes here and inside a method of the class we have:
XmlTextReader textReader;
textReader = new XmlTextReader(mySharePointFile.OpenBinaryStream());

textReader.WhitespaceHandling = WhitespaceHandling.None;

textReader.Read();

// If the node has value

while (textReader.Read())
{
  … and so on and so forth …

 

They key bit above is that we can read the InfoPath directly via the OpenBinaryStream() method call on the SPFile as a parameter to the constructor on XmlTextReader.  It works great.

</end>

Subscribe to my blog.

Follow me on Twitter at http://www.twitter.com/pagalvin

Technorati Tags:

评论

请稍候...
很抱歉,您输入的评论太长。请缩短您的评论。
您没有输入任何内容,请重试。
很抱歉,我们当前无法添加您的评论。请稍后重试。
若要添加评论,需要您的家长授予您相应权限。请求权限
您的家长禁用了评论功能。
很抱歉,我们当前无法删除您的评论。请稍后重试。
您已超过了一天之内允许提供的评论数上限。请在 24 小时后重试。
因为我们的系统表明您可能在向其他用户提供垃圾评论,您的帐户已禁用了评论功能。如果您认为我们错误地禁用了您的帐户,请联系 Windows Live 支持部门
完成下面的安全检查,您提供评论的过程才能完成。
您在安全检查中键入的字符必须与图片或音频中的字符一致。
GalvinPaul 在此页禁用了评论功能。

引用通告

此日志的引用通告 URL 是:
http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!4936.trak
引用此项的网络日志