0

変数xmlDocの結果を取得し、それをxmlドキュメント(ディスク上)に保存すると、クエリは結果を返します。ただし、ライブで実行すると(以下のコードを使用)、クエリ結果はnullになります。

クエリがxmlDocに対して機能しないのはなぜですか?デバッグ出力「xmlDoc.Root」については、以下のスクリーンショットを参照してください。

XDocumentを作成するためのよりクリーンな方法が必要ですか?

System.Net.WebClient wc = new System.Net.WebClient();

wc.Credentials = new System.Net.NetworkCredential("bagee18@gmail.com", "my_password");

XDocument xmlDoc = XDocument.Parse(wc.DownloadString(new Uri("https://mail.google.com/mail/feed/atom")), LoadOptions.None);



var q = (from c in xmlDoc.Descendants("entry")

        select new
        {
            name = c.Element("title").Value,
            url = c.Element("link").Attribute("href").Value,
            email = c.Element("author").Element("email").Value
        }).ToList();

q.Dump();

xmlDoc.Root:

XMLのスクリーンショット

4

1 に答える 1

0

名前空間を考慮してください。

XNamespace df = xmlDoc.Root.Name.Namespace;

var q = (from c in xmlDoc.Descendants(df + "entry")

        select new
        {
            name = c.Element(df + "title").Value,
            url = c.Element(df + "link").Attribute("href").Value,
            email = c.Element(df + "author").Element(df + "email").Value
        }).ToList();
于 2012-07-19T16:36:00.107 に答える