在具有相同属性的XML元素之间导航

时间:2018-08-22 01:13:41

标签: c# xml xpath xmldocument

我正在研究C#/ ASP.Net项目。

让我们说这是一个xml文档:

parent1
    child1 attributeA
    child2 attributeA

parent2
    child3 attributeA
    child4 attributeB

我想在带有attributeA的任何东西之间使用下一个和上一个按钮进行导航,因此,如果我在parent1 / child2中,则下一个将是parent2 / child3,而上一个将是parent1 / child1。

我可以创建一个新的XML文档,可以加载它,并且可以获取当前节点,但是我不知道下一个和上一个。

我该怎么做?有一阵子没做过xpaths了。一会儿。我在这里环顾四周,寻找类似的东西,但要么不在那里,要么找不到。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

The MSDN has a nice article about XPaths with great examples

但是此代码应为您提供所有具有attributeA的节点,而不管它们嵌套在XML中的什么位置:

var doc = new XmlDocument();
doc.Load(@"C:\path\to\file.xml");
XmlNodeList nodes = doc.SelectNodes("//*[@attributeA]");
foreach (var node in nodes)
{
    // your code here
}

路径//*[@attributeA]归结为:

//“深一层或多层”

*“任何元素”

[@attributeA]“具有属性'attributeA'”