Tôi đang cố gắng tạo trình đọc RSS đơn giản bằng cách sử dụng lớp SyndicationFeed
.Xây dựng trình đọc RSS đơn giản, truy xuất nội dung
Có một số thẻ chuẩn, như <title>
, <link>
, <description>
... không có vấn đề gì với chúng.
Nhưng có một số thẻ khác. ví dụ: trong this feed, được tạo bởi WordPress, có thẻ <content:encoded>
. Tôi nghĩ rằng có thể có các thẻ khác cho phần nội dung của các trang web khác. đúng?
Tôi muốn biết, cách tìm nội dung chính của mỗi bài đăng, có tiêu chuẩn nào không? Tôi nên tìm kiếm thẻ nào?
(ví dụ, một trang web có thể sử dụng <content:encoded>
nhưng một số khác chỉ cần sử dụng <description>
hoặc người sử dụng tiêu chuẩn khác ... Tôi không biết phải làm gì để lấy chính nội dung của một bài)
Tái bút: Tôi đang sử dụng mã này để kiểm tra trình đọc RSS đơn giản của mình:
var reader = XmlReader.Create("http://feed.2barnamenevis.com/2barnamenevis");
var feed = SyndicationFeed.Load(reader);
string s = "";
foreach (SyndicationItem i in feed.Items)
{
s += i.Title.Text + "<br />" + i.Summary.Text + "<br />" + i.PublishDate.ToString() + "<br />";
foreach (SyndicationElementExtension extension in i.ElementExtensions)
{
XElement ele = extension.GetObject<XElement>();
s += ele.Name + " :: " + ele.Value + "<br />";
}
s += "<hr />";
}
return s;
Phụ thuộc vào những gì bạn muốn hỗ trợ. Phần tử nội dung không phải là một phần của RSS2.0 nhưng là của Atom (rss 4287). Đọc thông số kỹ thuật RSS2.0 http://cyber.law.harvard.edu/rss/rss.html#hrelementsOfLtitemgt –
Thời gian qua tôi đã thử viết một trình đọc RSS, cuối cùng tôi đã từ bỏ sau khi tôi nhận ra rằng một số lượng đáng kể các nguồn cấp dữ liệu ngoài đó không tuân theo bất kỳ tiêu chuẩn nào. Các độc giả lớn ra khỏi đó phải rất tha thứ khi đọc nguồn cấp dữ liệu. Tôi thấy nó giống như các trình duyệt đọc các trang web - nếu mọi người tuân theo các tiêu chuẩn, không có vấn đề gì, nhưng nếu không, bạn sẽ viết các công cụ tùy chỉnh cả ngày để xử lý các tình huống một lần. –
@JoeEnos Ứng dụng trình đọc nguồn cấp dữ liệu khác làm gì? Họ có thể đọc mọi nguồn cấp dữ liệu. Làm thế nào họ làm điều đó ?! –