using System.Collections.Generic;
using System.Threading.Tasks;
namespace ConsoleApplication1
private static string xmlStr = @"<data>
<course srcid=""012345"">
<instructor srcid=""0123456""></instructor>
<course srcid=""123456"">
<instructor srcid=""1234567""></instructor>
<evaluation decline=""false"" sequence_num=""0001"">
<response questionId=""32"">Yes</response>
<response questionId=""34"">4</response>
<response questionId=""35"">4</response>
<response questionId=""36"">4</response>
<response questionId=""37"">4</response>
<response questionId=""38"">4</response>
<response questionId=""39"">4</response>
<response questionId=""40"">3</response>
<response questionId=""41"">3</response>
<response questionId=""42"">3</response>
<response questionId=""43"">3</response>
<response questionId=""44"">-1</response>
<response questionId=""45"">-1</response>
<response questionId=""46"">3</response>
<response questionId=""47"">-1</response>
<response questionId=""48"">-1</response>
<response questionId=""49"">3</response>
<response questionId=""50"">4</response>
<course srcid=""345678"">
<instructor srcid=""3456789""></instructor>
<evaluation decline=""false"" sequence_num=""0002"">
<response questionId=""32"">NO</response>
<response questionId=""33"">YES</response>
<response questionId=""34"">4</response>
<response questionId=""35"">4</response>
<response questionId=""36"">4</response>
<response questionId=""37"">4</response>
<response questionId=""38"">4</response>
<response questionId=""39"">4</response>
<response questionId=""40"">4</response>
<response questionId=""41"">4</response>
<response questionId=""42"">4</response>
<response questionId=""43"">4</response>
<response questionId=""44"">4</response>
<response questionId=""45"">4</response>
<response questionId=""46"">4</response>
<response questionId=""47"">4</response>
<response questionId=""48"">4</response>
<response questionId=""49"">4</response>
<response questionId=""50"">4</response>
<response questionId=""51"">4</response>
<response questionId=""52"">4</response>
<response questionId=""53"">4</response>
<response questionId=""54"">4</response>
<response questionId=""55"">4</response>
<response questionId=""56"">4</response>
<evaluation decline=""false"" sequence_num=""0003"">
<response questionId=""32"">YES</response>
<response questionId=""33"">YES</response>
<response questionId=""34"">3</response>
<response questionId=""35"">3</response>
<response questionId=""36"">4</response>
<response questionId=""37"">4</response>
<response questionId=""38"">4</response>
<response questionId=""39"">4</response>
<response questionId=""40"">4</response>
<response questionId=""41"">4</response>
<response questionId=""42"">4</response>
<response questionId=""43"">4</response>
<response questionId=""44"">4</response>
<response questionId=""45"">3</response>
<response questionId=""46"">4</response>
<response questionId=""47"">4</response>
<response questionId=""48"">4</response>
<response questionId=""49"">4</response>
<response questionId=""50"">3</response>
<response questionId=""51"">3</response>
<response questionId=""52"">4</response>
<response questionId=""53"">3</response>
<response questionId=""54"">4</response>
<response questionId=""55"">4</response>
<response questionId=""56"">4</response>
public static void Main(string[] args)
List<string> questions = new List<string>(){ "34", "35", "36", "37", "38", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "50", "51", "52", "53", "54", "55", "56" };
XDocument xmldata = XDocument.Parse(xmlStr);
foreach (var courseNode in xmldata.Root.Descendants("course"))
string course = (string) courseNode.Attribute("srcid").Value;
string instructor = (string) courseNode.Element("instructor").Attribute("srcid").Value;
foreach (var evaluationNode in courseNode.Descendants("evaluation"))
var eval = from answer in evaluationNode.Descendants("response")
where questions.Contains(answer.Attribute("questionId").Value)
string output = course + instructor;
foreach (string answer in eval)
Console.Write(output + "\r\n");
if (evaluationCount == 0)
Console.WriteLine(course + instructor);