ASP RSS Parser, Darllenydd Bwyd Anifeiliaid

Depositphotos 4651719 s

Y penwythnos hwn rydw i wedi cael fy gludo i'm gliniadur yn chwilio'r rhwyd ​​ar gyfer darllenwyr porthiant RSS ar y we. Y rheswm yw fy mod eisiau ysgrifennu darllenydd porthiant RSS asp a fyddai’n arddangos y porthiant fel y gallai’r cynnwys gael ei grafu’n awtomatig i e-bost HTML. Felly i bobl sydd am gadw cyfran o'u cylchlythyr e-bost ar gyfer eu herthyglau Blog neu Gyhoeddi, gellid ei ymgorffori'n hawdd. Gan nad yw JavaScript yn arddangos y cynnwys nes bod y cleient yn llwytho ac yn gweithredu'r sgript, nid oedd y llu o borwyr JavaScript RSS yn ddefnyddiol. Roeddwn i angen darllenydd porthiant RSS ochr y gweinydd.

Dechreuais trwy ysgrifennu fy mharser fy hun yn ASP gan ddefnyddio'r gwrthrych MSXML. Llwyddais i ddosrannu tua 75% o borthwyr RSS yn gwneud hyn, ond roedd yn anodd iawn rhaglennu rhai o'r manylebau XML rhydd ar borthwyr RSS. Gallwch ei weld ar waith yma. Gallwch chi basio'r nifer uchaf o eitemau (ni), nifer y nodau sy'n cael eu torri i ffwrdd wrth y gair (nc), yn ogystal â'r URL. Gallwch hefyd weld y porthiant gwirioneddol gyda newidyn dadfygio yma.

Mae llawer o borthwyr RSS yn eithaf 'budr' mewn gwirionedd ac mae angen dosrannu'r testun yn y ffeil XML â chod trin llinyn (ugh!). Wrth gwrs, rydyn ni'n dal yn ein 'ieuenctid' RSS ar y we felly dydw i ddim yn synnu. Darllenwch fwy am fanylebau RSS yma.

O'r diwedd, des i ar draws gem fach. Fe wnes i ddod o hyd i ddosbarth asp yn rhad ac am ddim i'w lawrlwytho. Mae ychydig yn araf, ond nid wyf wedi dod o hyd i borthiant nad oedd yn gallu ei ddarllen. Mae gen i fersiwn statig yma a fersiwn ddeinamig yma.

Mae cwpl yn nodi ar y sgript. Roedd angen i mi glirio rhai tagiau HTML yn y disgrifiadau a ddychwelwyd. Fe wnes i hynny gydag ychydig o swyddogaeth glanhau a ddarganfyddais:

Swyddogaeth RemoveHTML (strText) Dim nPos1 Dim nPos2 nPos1 = InStr (strText, ">") Gwnewch Tra nPos1> 0 nPos2 = InStr (nPos1 + 1, strText, ">") Os nPos2> 0 Yna strText = Chwith (strText, nPos1 - 1) & Mid (strText, nPos2 + 1) Allanfa Arall Do End Os nPos1 = InStr (strText, ">") Dolen RemoveHTML = Swyddogaeth Diwedd strText

Fe wnes i ychwanegu darn bach taclus arall hefyd: Weithiau, efallai y byddwn i eisiau arddangos mwy neu lai o ddisgrifiad. Fodd bynnag, os mai dim ond nifer y cymeriadau yr wyf yn eu cyfyngu, yna efallai y byddaf yn torri'r disgrifiad yng nghanol y gair. Nid wyf am wneud hynny!

Swyddogaeth Cutoff (strText, intChars) dim intLength dim j intLength = len (strText) os intChars> intLength yna ar gyfer j = intChars i 0 step -1 os canol (strText, j, 1) = "" yna allanfa ar gyfer nesaf os j> 0 yna strText = chwith (strText, j-1) & "..." arall strText = diwedd strText os yw'n dod i ben os yw Cutoff = Swyddogaeth Diwedd strText

(Cefais rai problemau gydag arddangos fy nghod yn gywir yn y cofnod hwn ... gadewch i mi wybod a ydych chi'n cael problemau gyda'r naill neu'r llall o'r swyddogaethau hyn!)

Rwyf wedi sylwi ar dipyn mwy o offer ar y we hefyd. Mae yna
. NET fersiwn, llawer o fersiynau PHP, tunnell o fersiynau JavaScript.

I gloi, gobeithiaf y bydd manylebau RSS yn parhau i gael eu mireinio a bod y porthwyr gwirioneddol yn cydymffurfio â safonau XML ym mhob achos. Mae angen i gymwysiadau am ddim fel TypePad, WordPress, ac ati, fireinio eu swyddogaeth RSS. Mae angen i flogiau ychwanegol fel MySpace, Xanga, LiveJournal, ac ati wella eu swyddogaeth RSS. Mae RSS YN bwerus…Chris Baggott ysgrifennodd ddarn braf ar E-bost vs RSS. Rwy'n credu y gallai cyfuno eu swyddogaeth gynyddu effaith y ddau!

Beth ydych chi'n feddwl?

Mae'r wefan hon yn defnyddio Akismet i leihau sbam. Dysgwch sut mae eich data sylwadau yn cael ei brosesu.