minhq460 / ProjectFront-end_Group17

Project Font-end nhóm 17
0 stars 1 forks source link

Tìm hiểu cách Pasre RSS trong angular #17

Open minhq460 opened 3 years ago

minhq460 commented 3 years ago

Nội dung: Tìm hiểu cách Pasre RSS trong angular, tổng hợp lại và comment tại đây Hạn chót: 11h59 ngày 20/6/2021

trung9266 commented 3 years ago

TypeScript Khi sử dụng TypeScript, bạn có thể đặt một kiểu để kiểm soát các trường tùy chỉnh:

import Parser from 'rss-parser'; type CustomFeed = {foo: string}; type CustomItem = {bar: number}; const parser: Parser<CustomFeed, CustomItem> = new Parser({ customFields: { feed: ['foo', 'baz'], item: ['bar'] } }); (async () => { const feed = await parser.parseURL('https://www.reddit.com/.rss'); console.log(feed.title); feed.items.forEach(item => { console.log(item.title + ':' + item.link) }); })()

trung9266 commented 3 years ago

Nguồn tham khảo về pasre RSS: https://www.npmjs.com/package/rss-parser Converter RSS to JSON: https://rss2json.com/#rss_url=https%3A%2F%2Fdantri.com.vn%2Ftrangchu.rss sử dụng link trong phần API call để đưa về project

troisang2404 commented 3 years ago

rss-parser Cài đặt npm install --save rss-parser Khi sử dụng TypeScript, bạn có thể đặt một kiểu để kiểm soát các trường tùy chỉnh: import Parser from 'rss-parser'; type CustomFeed = {foo: string}; type CustomItem = {bar: number}; const parser: Parser<CustomFeed, CustomItem> = new Parser({ customFields: { feed: ['foo', 'baz'], item: ['bar'] } }); (async () => { const feed = await parser.parseURL('https://www.reddit.com/.rss'); console.log(feed.title); feed.items.forEach(item => { console.log(item.title + ':' + item.link) }); })() Các lựa chọn cấu hình file XML Cách 1: Nếu nguồn cấp dữ liệu RSS của bạn chứa các trường hiện chưa được trả lại, bạn có thể truy cập chúng bằng cách sử dụng customField stùy chọn. let parser = new Parser({ customFields: { feed: ['otherTitle', 'extendedDescription'], item: ['coAuthor','subtitle'], } });

parser.parseURL('https://www.reddit.com/.rss', function(err, feed) { console.log(feed.extendedDescription);

feed.items.forEach(function(entry) { console.log(entry.coAuthor + ':' + entry.subtitle); }) }) Cách 2: Để đổi tên các trường, bạn có thể chuyển vào một mảng có hai mục, ở định dạng [fromField, toField]: let parser = new Parser ( { customFields : { item : [ [ 'dc: coAuthor' , 'coAuthor' ] , ] } } ) Cách 3: Để chuyển các cờ bổ sung, hãy cung cấp một đối tượng làm mục mảng thứ ba. Hiện tại có một lá cờ như vậy: • keepArray (false)- đặt để truetrả về tất cả các giá trị cho các trường có thể có nhiều mục nhập. • includeSnippet (false)- đặt để truethêm một trường bổ sung ${toField}Snippet, với HTML bị loại bỏ let parser = new Parser ( { customFields : { item : [ [ 'media: content' , 'media: content' , { keepArray : true } ] , ] } } ) Nguồn tham khảo: https://www.npmjs.com/package/rss-parser