Это довольно тривиально с использованием класса XDocument
и некоторого linq, который будет выглядеть следующим образом:
string xml=@"<MyRoot>
<c1>0</c1>
<c2>0</c2>
<c3>0</c3>
<c4>0</c4>
<c5>1</c5>
<c6>0</c6>
<c7>0</c7>
<c8>0</c8>
</MyRoot>";
XDocument Doc = XDocument.Parse(xml);
var nodes = from response in Doc.Descendants()
where response.Value == "1"
select new {Name = response.Name, Value = response.Value };
foreach(var node in nodes)
Console.WriteLine(node.Name + ": " + node.Value);
Посмотрите на работающую DEMO Fiddle как пример
с лямбдой:
var nodes = Doc.Descendants().Where(x=> x.Value == "1")
.Select(x=> {Name = x.Name, Value = x.Value });
Теперь вы можете выполнить итерацию:
foreach(var node in nodes)
Console.WriteLine(node.Name + ": " + node.Value);