1

このフィードから「エントリ」ノードを取得するにはどうすればよいですか

http://www.google.com/alerts/feeds/14392773026536511983/5526937985735563348

linq to xmlを試しましたが、エントリタグの既存の属性が原因で、次のコードが機能しないと思います。

string url = "http://www.google.com/alerts/feeds/14392773026536511983/5526937985735563348";

WebClient c = new WebClient();

string xml = ASCIIEncoding.Default.GetString(c.DownloadData(url));

XDocument doc = XDocument.Parse(xml);

var entries = doc.Descendants("entry");

前もって感謝します、

4

2 に答える 2

5

名前空間を指定していません。これを試して:

XNamespace atom = "http://www.w3.org/2005/Atom";
var entries = doc.Descendants(atom + "entry");

ところで、私はこれにASCIIを使用しません、またはDownloadData...WebClient.DownloadStringあなたのためにエンコーディングを処理するために使用します。または、実際に使用するだけXDocument.Load(url)です:

例えば:

string url = ...;

XDocument doc = XDocument.Load(url);
XNamespace atom = "http://www.w3.org/2005/Atom";
var entries = doc.Descendants(atom + "entry");
Console.WriteLine(entries.Count()); // Prints 20
于 2011-03-24T08:06:27.523 に答える
1

このデータはAtom形式で表示されるため、標準仕様に従って解析する必要があります。最も簡単な方法は、オープンソースコードを調べることです。このリンクをチェックしてください。「Atom、RDF、RSSフィード用の汎用パーサーの作成」の部分が必要です。

于 2011-03-24T08:08:15.620 に答える