Как получить следующий и предыдущий узел - PullRequest
0 голосов
/ 17 сентября 2010

Я пытаюсь получить как следующий, так и предыдущий элементы текущего элемента

Вот это 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 Ответ

2 голосов
/ 17 сентября 2010

Как насчет этого:

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

Единственная проблема с этим - он возвращает комментарии и другие вещи, которые являются узлами, но на основе вашего XML это все равно будет работать для вас.

...