2013-08-19 3 views
0

이 내 XML입니다 :중첩 루프 XML 요소

<Scenario> 
    <Steps> 
     <Step Name="A"> 
     <Check Name="1" /> 
     <Check Name="2" /> 
     </Step> 
     <Step Name="B"> 
     <Check Name="3" /> 
     </Step> 
    </Steps> 
</Scenario> 

내가 그 단계의 각각의 체크 요소와 뭔가를하고, 각 단계를 들면, XML 요소를 통해 루프를 시도하고있다. 그래서 :

foreach(Step step in Steps) { 
    foreach(Check in step) { 
     // Do something 
    } 
} 

그것은 수도와 같은 출력 뭔가 : 내가 사용

A1 
A2 
B3 

코드는 다음과 같습니다

foreach (XElement step in document.Descendants("Step")) 
{ 
    // Start looping through that step's checks 
    foreach (XElement substep in step.Elements()) 
    { 

을 제대로 반복되지 그러나. 위의 중첩 된 루프 구조는 각 단계의 하위 Check 요소에 대해 무언가를 수행하는 대신 각 단계의 모든 Check 요소에 대해 작업을 수행합니다. 예를 들어, 내 코드의 출력은 다음과 같습니다

A1 
A2 
A3 
B1 
B2 
B3 

가 어떻게 내 루프를 해결할 수 있습니까?

답변

1

코드가 정상입니다.

A1 
A2 
B3 
+0

gunr2171 @ 모두가 XML이 방법에 따라 달라집니다 :이

foreach (XElement step in document.Descendants("Step")) { // Start looping through that step's checks foreach (XElement substep in step.Elements()) { Console.WriteLine(step.Attribute("Name").Value + "" + substep.Attribute("Name").Value); } } 

출력을 참조하십시오. 문제의 예제가 주어지면 괜찮습니다. – I4V

+0

네가 맞아 ... 이상하게 들리면 루프가 잘못된 것을 출력하게하는 다른 문제가 아닐까 싶다. –