如何获取下一个和上一个节点

时间:2010-09-17 19:13:23

标签: c# xml linq-to-xml

我正在尝试获取当前元素的下一个和前一个元素

这是xml

<template id="9">
  <tabs>
    <tab>
      <name>test</name>
      <description />
    </tab>
    <tab>
      <name>test3</name>
      <description />
    </tab>
    <tab>
      <name>test7</name>
      <description />
    </tab>
  </tabs>
  <tabs />
  <tabs />
</template>

当前节点是带有

的选项卡
  

TEST3

这是我正在使用的代码

var doc = XDocument.Parse(q.XMLtext);
var tabs = doc.ElementOrDefault("template").ElementOrDefault("tabs").Elements();
var Current = doc.ElementOrDefault("template")
  .ElementOrDefault("tabs")
  .ElementsOrDefault("tab")
  .ElementsOrDefault("name")
  .Where(x => x.Value == name);
//get the next and previous nodes here

1 个答案:

答案 0 :(得分:2)

这个怎么样:

var previous = Current.PreviousNode;
var next = Current.NextNode;

唯一的问题是它将返回注释和其他节点,但根据您的XML,这仍然适合您。