如果你看一下比較由HTTP請求返回的XML,您將看到它定義了一個XML名稱空間:
<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" ...>
<id>tag:search.twitter.com,2005:search/twitter</id>
...
</feed>
XML就像C#一樣,如果你使用具有錯誤名稱空間的元素名稱,它不被認爲是相同的元素!您需要將所需的namepsace添加到您的查詢中:
private static string AtomNamespace = "http://www.w3.org/2005/Atom";
public static XName Entry = XName.Get("entry", AtomNamespace);
public static XName Published = XName.Get("published", AtomNamespace);
public static XName Title = XName.Get("title", AtomNamespace);
var items = doc.Descendants(AtomConst.Entry)
.Select(entryElement => new FeedItemViewModel()
new {
Title = entryElement.Descendants(AtomConst.Title).Single().Value,
...
});
你在飼料中得到什麼?你有沒有例外?您可以發佈一個xml的片段嗎? – 2011-05-19 12:45:06
XML中是否有任何名稱空間? – 2011-05-19 12:46:13