C# 如何在C中跳过XMLDocument中的节点#

C# 如何在C中跳过XMLDocument中的节点#,c#,xml,xmldocument,C#,Xml,Xmldocument,假设我有这样一个XML文档 <xml> <food> <banana>this is a banana</banana> <apple>this is an apple</apple> <grape>this is a grape</grape> </food> <food>

假设我有这样一个XML文档

<xml>
     <food>
            <banana>this is a banana</banana>
            <apple>this is an apple</apple>
            <grape>this is a grape</grape>
     </food>
     <food>
            <cake>this is cake</cake>
            <soda>this is soda</soda>
            <cookie>this is a cookie</cookie>
     </food>
</xml>
XmlDocument xdcDocument = new XmlDocument();

xdcDocument.LoadXml(<xml string>);

XmlElement xelRoot = xdcDocument.DocumentElement;
XmlNodeList xnlNodes = xelRoot.SelectNodes("/food");

bool first = true;
foreach(XmlNode xndNode in xnlNodes)
{
    if (first) {
        first = false;
        continue;
    }
    // process the second node here
}

这是一根香蕉
这是一个苹果
这是一颗葡萄
这是蛋糕
这是苏打水
这是一块饼干
我如何跳到
的第二个节点,使用C#中的XMLDocument从中获取食物?任何建议都将不胜感激

XmlDocument xdcDocument=newxmldocument();
XmlDocument xdcDocument = new XmlDocument();

xdcDocument.LoadXml(<xml string>);

XmlElement xelRoot = xdcDocument.DocumentElement;
XmlNodeList xnlNodes = xelRoot.SelectNodes("/food");

bool first = true;
foreach(XmlNode xndNode in xnlNodes)
{
    if (first) {
        first = false;
        continue;
    }
    // process the second node here
}
xdcDocument.LoadXml(); XmlElement xelRoot=xdcDocument.DocumentElement; XmlNodeList xnlNodes=xelRoot.SelectNodes(“/food”); bool first=true; foreach(xnlNodes中的XmlNode xndNode) { 如果(第一){ 第一个=假; 继续; } //在这里处理第二个节点 }
您可以使用
可枚举。跳过
(来自注释中@JeroenvanLangen的想法),但它需要一些技巧:

XmlDocument xdcDocument = new XmlDocument();

xdcDocument.LoadXml(<xml string>);

XmlElement xelRoot = xdcDocument.DocumentElement;
XmlNodeList xnlNodes = xelRoot.SelectNodes("/food");

bool first = true;
foreach(XmlNode xndNode in xnlNodes)
{
    if (first) {
        first = false;
        continue;
    }
    // process the second node here
}
XmlNodeList xnlNodes = Doc.SelectNodes("/food");
foreach(XmlNode node in xnlNodes.Cast<XmlNode>().Skip(1))
{
    //do sth
}
XmlNodeList xnlNodes=Doc.SelectNodes(“/food”);
foreach(xnlNodes.Cast()中的XmlNode节点跳过(1))
{
//做某事
}

之所以需要强制转换技巧,是因为XmlNodeList实现了接口
IEnumerable
,但不是
IEnumerable

,您尝试了什么?有几种方法可以读取xml,您使用了哪种方法?`Doc=newXMLDocument();Doc.Load(this.xml)`我会使用:
XmlNode xndNode=xnlNodes.Skip(1).FirstOrDefault()
@Joroen van Langen-是的,我认为你的方式比我写的更优雅,谢谢你的评论。
XmlDocument xdcDocument = new XmlDocument();

xdcDocument.LoadXml(<xml string>);

XmlElement xelRoot = xdcDocument.DocumentElement;
XmlNodeList xnlNodes = xelRoot.SelectNodes("/food");

bool first = true;
foreach(XmlNode xndNode in xnlNodes)
{
    if (first) {
        first = false;
        continue;
    }
    // process the second node here
}