2009-09-29 78 views
0

如何查询下面的文件,所以它会给我的值“ID”(根状态之后)?LINQ到XML查询在c#

这给出了一个错误(不设置到对象的实例对象引用。)

  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作为,是与所有的'<'等完好,只是缩进它所有的编辑器至少有4个空格,因此得到了正确的格式。 – AnthonyWJones 2009-09-29 10:02:32

回答

1

你的根元素是已经 '状态'。因此,下面的代码:

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

需要阅读:

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