Monday, April 26, 2010

Iterate a InfoPath repeating table in C#

private void ParseProjectTable()
{
String ProjectName = String.Empty;
String WeekEnding = String.Empty;
String HoursWorked = String.Empty;
XPathNavigator myNav = MainDataSource.CreateNavigator(); XPathNodeIterator NodeIterator = myNav.Select("/my:TimeCard/my:EmployeeSection/my:ProjectSection/my:Project", NamespaceManager);//Repeating table
XPathNavigator myNode;
while (NodeIterator.MoveNext()) //Iterate through table
{
myNode = NodeIterator.Current.CreateNavigator();
ProjectName = myNode.SelectSingleNode("my:ProjectName", NamespaceManager).Value;
HoursWorked = myNode.SelectSingleNode("my:phTotal", NamespaceManager).Value;
MessageBox.Show("ProjectName = " + ProjectName + "\nHoursWorked = " + HoursWorked); //NodeIterator.Current.el.Value);
}
}