2011-11-04 2 views
0

큰 파일에 다음 XML 요소가 있는데 StayDateRange 내의 요소를 반복하려고합니다. 어떻게이 작업을 수행 할 수 있습니까? 비슷한 일을해야하는 다른 섹션이 있습니다.Foreach 노드 내부의 XML 요소에 액세스

<StDteRange timeUnitType="DAY"> 
    <strtTime>2009-06-28T00:00:00.000</strtTime> 
    <numOfUnits>4</numOfUnits> 
</StDteRange > 

IEnumerable<XElement> StDteRange = from el in root.Descendants(aw + "StDteRange ") 
select el; 

foreach (XElement el in StDteRange) 
{ 
     if (el.Name.LocalName=="strtTime") 
      Console.WriteLine((DateTime)el); 

     if (el.Name=="numOfUnits") 
      Console.WriteLine((int)el); 
} 
+0

연재 사용을 고려해 보셨습니까? 데이터 igate? –

+0

어떻게 할 수 있습니까? 어떤 충고라도받을 만하다. – user67144

답변

1

좋은 예는 온라인이 있습니다

Scott Guthrie's Blog - Using Linq to XML

Hooked On Linq - Linq to XML

당신은 당신의 결과를 유지하는 간단한 클래스를 생성 한 다음 LINQ 쿼리에서 새 개체를 만들 수 있습니다 :

public class XMLResult() 
{ 
    public string localname; 
    public int Units; 
} 

IEnumerable<XMLResult> results = from el in root.Descendants(aw + "StDteRange ") 
    select new XMLResult() { 
      Name = el.Element("strtTime").value, 
      Units = el.Element("numOfUnits").value 
    }; 
+0

빈 개체 예외가 발생합니다. 제발 조언을 – user67144

+0

난 그냥 Psudo 코드를 게시했다, 나는 그것을 작동하도록 약간의 실제 요소 이름을 포함하도록 업데이 트했습니다,하지만 더 당신에게 프로세스를 보여 주려고했다. – John