#c#
#c#
Вопрос:
xml:
<PrimaryLink>
<LinkID>p1</LinkID>
<SecondaryLink>
<LinkID>s1</LinkID>
<LeftMenu>
<NavLinks>
<LinkID>n1</LinkID>
</NavLinks>
<NavLinks>
<LinkID>n2 </LinkID>
</NavLinks>
</LeftMenu>
</SecondaryLink>
</PrimaryLink>
c#:
var menuItems1 = from c in xMenuElement.Elements("GlobalNavigation").Elements("PrimaryLink")
select c;
я понимаю, что ответчикам нравится p1-> s1-> n1, предоставляя n1 в качестве входных данных
Ответ №1:
Ваш вопрос довольно неясен, но я думаю, что вы хотите что-то вроде:
var query = xml.Descendants("LinkID")
.Where(x => (string) x == "n1")
.Single()
.AncestorsAndSelf("LinkID")
.Reverse()
.Select(x => (string) x);
Это вернет последовательность «p1», «s1» и «n1».
Комментарии:
1. Вы можете использовать этот метод
AncestorsAndSelf()
вместоAncestors()
для включения последнего идентификатора ссылки.2. @Elian: Я искал это, но не увидел. Похоже, я искал не тот класс, чтобы найти его — Ancestors находится в XNode, AncestorsAndSelf — в XElement.