나는 다음과 같은 XML 문서는 C#을 실버 라이트에로드되는 한 :LINQ to XML : Silverlight C#에서 하위 노드를 선택하도록 지정 하시겠습니까?
<parent>
<son name="Jim">
<grandson>Billy</grandson>
<granddaughter>Sue</granddaughter>
</son>
<daughter name="Sally">
</daughter>
</parent>
내가 부모를 조회 "아들"만 "딸"노드의 목록을 얻을 수 있도록 내가 LINQ 쿼리를 수행하고 싶습니다. "son"유형의 노드에 도달하면 자체 자식에 대해 다른 쿼리를 수행하려고합니다.
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 문서 형식을 제어 할 수 없기 때문에 더 나은 것으로 변경할 수 없습니다. 감사!
및 모두를 체인 아래로. 은 요소이거나 그 다음에 등 –
BerggreenDK