C# 检查是否存在特定的xml节点

C# 检查是否存在特定的xml节点,c#,xml,C#,Xml,我试图检查xml文件中是否存在节点“DEF” 我的xml文件如下所示: <Struct> <A> <ABC> </ABC> <DEF> </DEF> </A> <B> <GHI> </GHI> </B> </Struct> XmlDocument stru

我试图检查xml文件中是否存在节点“DEF”

我的xml文件如下所示:

<Struct>
   <A>
      <ABC>
      </ABC>
      <DEF>
      </DEF>
   </A>
   <B>
      <GHI>
      </GHI>
   </B>
</Struct>
XmlDocument stru = new XmlDocument();
stru.Load(path + "Structure.xml");
if (stru.ChildNodes[0].HasChildNodes)
{
    for (int i = 0; i < stru.ChildNodes[0].ChildNodes.Count; i++)
    {
        if (stru.ChildNodes[0].ChildNodes[i].Attributes["DEF"] != null)
        {
            enabled = true;
            break;
        }
        else
        {
            MessageBox.Show("no");
        }

    }
}
else { MessageBox.Show("Error!"); }

我的代码如下所示:

<Struct>
   <A>
      <ABC>
      </ABC>
      <DEF>
      </DEF>
   </A>
   <B>
      <GHI>
      </GHI>
   </B>
</Struct>
XmlDocument stru = new XmlDocument();
stru.Load(path + "Structure.xml");
if (stru.ChildNodes[0].HasChildNodes)
{
    for (int i = 0; i < stru.ChildNodes[0].ChildNodes.Count; i++)
    {
        if (stru.ChildNodes[0].ChildNodes[i].Attributes["DEF"] != null)
        {
            enabled = true;
            break;
        }
        else
        {
            MessageBox.Show("no");
        }

    }
}
else { MessageBox.Show("Error!"); }
XmlDocument stru=new XmlDocument();
stru.Load(路径+“Structure.xml”);
if(stru.ChildNodes[0].HasChildNodes)
{
对于(int i=0;i
它会立即显示带有“Error!”的messagebox

使用linq到xml,并带有:

按文档顺序返回此文档或元素的已筛选子元素集合。集合中仅包含具有匹配XName的元素。(从XContainer继承。)

将linq to xml用于:

按文档顺序返回此文档或元素的已筛选子元素集合。集合中仅包含具有匹配XName的元素。(从XContainer继承。)


你调试过了吗?此外,这不是有效的xml结构
1
2
3
都不是有效的xml节点哦,它们有自己的名称,但我想简化它们,请给我一点时间编辑它。节点“2”的确切含义是什么?opp,编辑了吗?调试了吗?此外,这不是有效的xml结构
1
2
3
都不是有效的xml节点噢,它们有自己的名称,但我想简化它们,请给我一秒钟时间编辑它。节点“2”的确切含义是什么?Opps,编辑它