2011-03-23 93 views
1

我正在努力解析Google提要。我對正常的RSS沒有任何問題,但是這個稍微複雜的基於ATOM的提要對於我來說並不適用於相同的簡單解析代碼。 我怎樣才能進入elelemts?Windows Phone WP7幫助解析XML提要

我使用的以下代碼不起作用,它不返回任何集合,但可以很好地與RSS獲取<項目>元素,因爲它們可能是因爲它們沒有屬性。

XElement _xml = XElement.Parse(response); 
foreach (XElement value in _xml.Elements("entry")) 
{ 
... 
} 

當他們有gd:etag =「...」時,我該如何到達入口元素?

任何幫助表示讚賞。

進料的樣品--------------- ----------------------

<feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" 
     xmlns:docs="http://schemas.google.com/docs/2007" xmlns:batch="http://schemas.google.com/gdata/batch" 
     xmlns:gd="http://schemas.google.com/g/2005" gd:etag="W/&quot;DUMFR3YyfCt7ImA9WxNTFU0.&quot;"> 
<id>https://docs.google.com/feeds/default/private/full</id> 
<updated>2009-08-17T11:10:16.894Z</updated> 
<title>Available Documents - [email protected]</title> 
<openSearch:startIndex>1</openSearch:startIndex> 
<entry gd:etag="'EVJVTBICRit7ImBq'"> 
    <id>https://docs.google.com/feeds/id/document%3A12345</id> 
    <published>2009-07-22T19:02:57.616Z</published> 
    <updated>2009-07-29T20:31:39.804Z</updated> 

</entry> 
<entry gd:etag="'HhJSFgpeRyt7ImBq'"> 
    <id>https://docs.google.com/feeds/id/pdf%3A12345</id> 
    <published>2009-04-09T18:23:09.035Z</published> 
    <updated>2009-04-09T18:23:09.035Z</updated> 

</entry> 
... 
</feed> 

回答

1

您應該使用Linq。將xml加載到XDocument對象中,然後針對具有gd:etag =「」的條目運行一個Linq查詢。

XDocument feedXml = XDocument.Load(uriToFeed); 
var feedInfo = from item in publicationsXml.Descendants("feed") 
       select new Feed // this can be a class that has the properties 
           // from each feed that you care about 
       { 
       // code to retreive info you need from the item 
       ID = item.Element("id").Value, 
       //etc. 
       };