я следующий XML документ загружается в C# Silverlight:LINQ to XML: отложить выбор детей в Silverlight C#?
<parent>
<son name="Jim">
<grandson>Billy</grandson>
<granddaughter>Sue</granddaughter>
</son>
<daughter name="Sally">
</daughter>
</parent>
Я хотел бы сделать запрос LINQ, так что я запрашиваю родителей и получить список «сын» и «дочь» только узлы. Когда я добираюсь до узла типа «сын», я хочу сделать еще один запрос для своих собственных детей.
Я попытался это:
IEnumerable<XElement> Children =
from childNode in parents.Descendants()
select (XElement)childNode ;
foreach(XElement childNode in Children){
// other code
}
, но это дает мне все (сын, дочь, внук, внучка).
То, что я хотел бы сделать что-то вроде этого:
foreach(XElement childNode in Children){
switch(childNode.Name.ToString()){
case "son":
// look for "grandson" and "granddaughter" as children of "son" now
break;
case "daughter":
// don't look for anything
break;
}
}
Так в основном, я только хочу, чтобы первый уровень детей вернулись в запросе, и я буду запрашивать остальное позже.
Я не уверен, что это должно быть сделано в исходном запросе LINQ, в условии foreach или что. Я не контролирую формат XML-документа, поэтому я не могу изменить его на что-то лучше. Благодаря!
Я думаю, что я хотел бы использовать различные тег для XML, так что, если это не образец данных, я хотел бы использовать и все путь вниз по цепи. должен быть элементом или еще что-то, а затем просто и т. Д. –
BerggreenDK