我正在尝试检查节点" DEF"存在于我的xml文件中
我的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!"); }
它会立即显示消息框,其中包含&#34;错误!&#34;在其中
答案 0 :(得分:1)
将linq用于带Descendants
的xml:
按文档顺序返回此文档或元素的后代元素的筛选集合。只有具有匹配XName的元素才会包含在集合中。(继承自XContainer。)
var abcs = XDocument.Load("data.xml").Descendants("ABC");
if(abcs.Any())
{
// There is at least one element of "ABC"
}