2009-09-29 4 views
0

아래의 쿼리를 사용하면 "id"(상태 후 루트에있는 값) 값을 어떻게 얻을 수 있습니까?LINQ to XML C#

이 오류 준다 (개체의 인스턴스로 설정되지 않았습니다 Object 참조.)

  using (WebResponse response = request.GetResponse()) 
     { 
      using (StreamReader reader = new StreamReader(response.GetResponseStream())) 
      { 
       string responseString = reader.ReadToEnd(); 
       XDocument document = XDocument.Parse(responseString, LoadOptions.None); 
       return (from e in document.Root.Elements("status") 
         select e.Element("id").Element("name").Value).SingleOrDefault().ToString(); 
       return responseString; 
      } 
     } 

XML

 
<?xml version="1.0" encoding="UTF-8"?> 
<status> 
    <created_at>Tue Sep 29 09:33:23 +0000 2009</created_at> 
    <id>xxxxxxxxxxxxxx</id> 
    <text>test</text> 
    <source><a href="http://apiwiki.twitter.com/" rel="nofollow"&gt;API</a&gt;</source> 
    <truncated>false</truncated> 
    <in_reply_to_status_id></in_reply_to_status_id> 
    <in_reply_to_user_id></in_reply_to_user_id> 
    <favorited>false</favorited> 
    <in_reply_to_screen_name></in_reply_to_screen_name> 
    <user> 
    <id>xxxx</id> 
    <name>xxx</name> 
    <screen_name>xxx</screen_name> 
    </user> 
</status> 
+0

이 질문을 수정하시기 바랍니다, 모든'<'등 그대로, 그냥 들여 쓰기 모두와 편집기에있는 그대로 당신의 XML을 붙여 넣습니다

return (from e in document.Root.Elements("status") select e.Element("id").Element("name").Value).SingleOrDefault().ToString(); 

은 읽을 필요 적어도 4 칸 쯤 지나면 SO가 올바른 형식을 취합니다. – AnthonyWJones

답변

1

루트 요소는 '상태'이 (가) 이미 있습니다. 따라서 다음과 같은 코드 :

return document.Root.Element("id").Value;