2009-02-23 16 views
51

Tôi đã muốn tạo trình đọc RSS một thời gian (chỉ để giải trí), nhưng tôi không có ý tưởng nhỏ nhất về nơi bắt đầu. Tôi không hiểu gì về RSS. Có bất kỳ hướng dẫn tốt về RSS và làm thế nào để thực hiện nó trong một ứng dụng (không phải là một hướng dẫn về cách làm cho một trình đọc RSS, đó sẽ là quá dễ dàng).Làm cách nào để bắt đầu tạo một Trình đọc RSS C#?

Trả lời

51

Xem

http://msdn.microsoft.com/en-us/library/bb943474.aspx

http://msdn.microsoft.com/en-us/library/system.servicemodel.syndication.syndicationfeed.aspx

http://msdn.microsoft.com/en-us/library/bb943480.aspx

Về cơ bản có rất nhiều thứ trong Net 3.5 khuôn khổ mà không được grunt làm việc của phân tích và thức ăn đại diện; không khó để viết một ứng dụng 30 dòng có URL nguồn cấp dữ liệu và tải xuống nguồn cấp dữ liệu và in tiêu đề và tác giả của tất cả các mục, chẳng hạn. (Làm việc cho RSS 2.0 (không phải người khác) hoặc Atom!.)

+2

Xem ví dụ: phía trên cùng của http://lorgonblog.spaces.live.com/blog/cns!701679AD17B6D310!164.entry cho đoạn mã 10 dòng (F #, nhưng chủ yếu chỉ là API khung gọi) sẽ giúp bạn từ Uri in nguồn cấp dữ liệu trong khoảng 30 giây mã hóa. – Brian

+1

Các liên kết rất hữu ích, nếu ai đó sắp phân tích cú pháp rss ** thì đây là các liên kết! ** –

+2

Có một ứng dụng và hướng dẫn đầy đủ về RSS, RDF và ATOM Reader trên trang web của tôi http://www.jarloo.com/rumormill-5/ Nó cho thấy cách viết các trình phân tích cú pháp của riêng bạn bằng LINQ. – Kelly

0

Nếu bạn viết một độc giả đầy đủ tính năng mà không sử dụng bất kỳ thư viện, cũng nghĩ rằng có ATOM nguồn cấp dữ liệu để phân tích cú pháp.

11

Nếu bạn đang tập trung vào việc tạo ra một RSS Reader và không phải trên RSS luận phân tích, bạn có thể muốn ủy tạo/đọc RSS feeds sử dụng miễn phí RSS Thư viện này được gọi là Argotic trên CodePlex.com

0

RSS chính nó là thực sự đơn giản. Chỉ cần mô tả XML của một kênh và danh sách các mục trên kênh đó (có thể với các tệp được đính kèm với từng mục). Việc theo dõi các bản cập nhật hơi phức tạp và việc quản lý mã hóa cũng như thời gian đăng bài/ngày cũng khó khăn. Cơn ác mộng thực sự là tất cả các "cách diễn giải" khác nhau của định dạng RSS mà các trang web khác nhau sử dụng. Nếu bạn đang thực sự viết trình đọc nguồn cấp dữ liệu, bạn có thể muốn bắt đầu với phân tích cú pháp Atom, vì đó là định dạng được chuẩn hóa hơn và có thể giúp bạn nhanh hơn, với thiết kế tốt để phân nhánh thành RSS. Nhưng thực sự, bạn chỉ nên sử dụng một thư viện phân tích cú pháp RSS - tốt nhất là một thư viện tương thích nhất có sẵn (nhưng không trả tiền cho một thư viện RSS; chúng đủ phổ biến).

0

RSS là một phương ngữ XML, vì vậy nếu bạn biết XML, bạn có một phần của vấn đề được giải quyết. Nếu bạn muốn có một sự khởi đầu cho dự án của bạn, hãy cân nhắc xem xét các dự án mã nguồn mở đã ra khỏi đó:

http://www.codeplex.com/site/search?projectSearchText=RSS%20Reader

CodePlex (ở trên) là một nơi tốt để bắt đầu, vì phần lớn các dự án sẽ nằm trong C# .

6

Như một áp phích khác được đề xuất, lớp SyndicationFeed và Argotic là lựa chọn thay thế tốt nhất.

Nếu hiệu suất là vấn đề, lớp SyndicationFeed sẽ tốt hơn nhiều. Tôi đã đánh giá nó nhanh gấp 9 lần Argotic trên phần cứng của tôi.

Sự cố tôi gặp phải với lớp SyndicationFeed là khả năng phân tích thành công bất kỳ nguồn cấp dữ liệu ngẫu nhiên nào từ 'net. Nó không thành công với một XmlException đáng ngạc nhiên thường xuyên.

Để sử dụng, tôi gắn bó với Argotic. Sau khi tất cả, nó là mã nguồn mở, vì vậy tôi luôn có thể thay đổi nếu tôi cần.

0

Cân nhắc đọc mã nguồn cho RSS Bandit, đây là Trình đọc RSS C# Winforms (có thể sớm có WPF).

Bạn sẽ nhận được một số ý tưởng hay bằng cách chỉ cần thực hiện qua ứng dụng.

1

tôi đề nghị bạn sử dụng này

RSS.NET là một mã nguồn mở thư viện .NET lớp cho RSS feeds. Nó cung cấp một mô hình đối tượng tái sử dụng để phân tích cú pháp và viết các nguồn cấp dữ liệu RSS. Nó hoàn toàn tương thích với các phiên bản RSS 0.90, 0.91, 0.92 và 2.0.1, triển khai tất cả các cấu trúc.

Vì nguồn cấp dữ liệu chuẩn không hỗ trợ các phiên bản rss khác.

0

Tôi đã làm việc với RSS một chút và thấy rằng nguồn cấp dữ liệu ATOM thường dễ dàng hơn khi phân tích bằng cách sử dụng lớp RssSyndication. Đối với thông số kỹ thuật RSS 2.0, nếu nguồn cấp dữ liệu thực tế hợp lệ, thì việc tải một XDocument từ URI cũng dễ dàng và phân tích dữ liệu khi cần.

0

Nếu bạn không thể sử dụng System.ServiceModel.Syndication.Syndicationfeed, ví dụ vì bạn đang sử dụng PCL (Thư viện lớp di động). Tôi đã viết một: FeedParserPCL. Bạn có thể tìm thấy nó trên NuGet.

Các vấn đề liên quan