2012-06-25 4 views
0

다음 XML 문서는 어떻게 읽습니까?linq (C#)을 사용하여 xml을 읽는 중

내 코드는 다음과 같습니다

var vb = 
    (from vbs in XMLDoc.Descendants("Response").Descendants("Records ") 
    select new 
     { 
      ref = vbs.Element("ref").Value 
     }).ToList(); 

XML 문서 :

<Response> 
    <Msg> 
     <Code>30</Code> 
    <Query/> 
    </Msg> 
<Rec> 
    <Records price="1989" no="838976" ref="1927A64FF6B03527E5BFD8424F647848005143DB" query="00"/> 
</Rec> 
</Response> 
+1

무엇이 잘못 되었나요? 코드가 반환되면 무엇입니까? – ChrisF

+2

우선 "레코드"는 아마도 "레코드"여야합니다. – cdhowie

+0

난 그냥 REC의 라인을 원해, 내가 어떻게 할 수 있니? 난의 GridView에 바인딩 할 수 없습니다 –

답변

3

"Records ""Records"을해야하고, 익명 클래스 멤버 이니셜 라이저에서 Element()에 전화 Attribute()을해야 당신이 속성을 읽기 때문에 이것은 요소가 아닙니다.

var vb = 
    (from vbs in XMLDoc.Descendants("Response").Descendants("Records") 
    select new 
     { 
      ref = (string)vbs.Attribute("ref") 
     }).ToList(); 

IMO, 속성을 읽을 때 속성을 찾을 수 없을 때 null를 반환하기 때문에 string로 변환이 바람직하다. vbs.Attribute("ref").Value을 대신 사용하는 경우 속성이없는 경우 NullReferenceException이 표시됩니다.

관련 문제