C# 如何在C中跳过XMLDocument中的节点#
假设我有这样一个XML文档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>
<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
}