Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 嵌套循环XML元素_C#_Xml_Loops_While Loop - Fatal编程技术网

C# 嵌套循环XML元素

C# 嵌套循环XML元素,c#,xml,loops,while-loop,C#,Xml,Loops,While Loop,这是我的XML: <Scenario> <Steps> <Step Name="A"> <Check Name="1" /> <Check Name="2" /> </Step> <Step Name="B"> <Check Name="3" /> </Step> </S

这是我的XML:

<Scenario>
   <Steps>
      <Step Name="A">
         <Check Name="1" />
         <Check Name="2" />
      </Step>
      <Step Name="B">
         <Check Name="3" />
      </Step>
   </Steps>
</Scenario>
它可能会输出如下内容:

A1
A2
B3
我使用的代码是:

foreach (XElement step in document.Descendants("Step"))
{
   // Start looping through that step's checks
   foreach (XElement substep in step.Elements())
   {
然而,它没有正确地循环。上面的嵌套循环结构正在为每个步骤的所有检查元素做一些事情,而不是只为每个步骤的子检查元素做一些事情。例如,我的代码的输出是:

A1
A2
A3
B1
B2
B3

如何修复循环?

您的代码很好。看到这个了吗

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);
    }
}
输出:

A1
A2
B3

@gunr2171这一切都取决于xml的使用方式。考虑到这个例子,这很好。你是对的。。。太奇怪了,我想是另一个问题导致循环输出错误的东西。
A1
A2
B3