ASP RSS Parser, Feed Reader

Depositphotos 4651719 δ

Αυτό το Σαββατοκύριακο έχω κολλήσει στο φορητό υπολογιστή μου ψάχνοντας στο διαδίκτυο για αναγνώστες τροφοδοσίας RSS μέσω διαδικτύου. Ο λόγος είναι ότι ήθελα να γράψω μια συσκευή ανάγνωσης τροφοδοσίας RSS asp που θα εμφανίζει τη ροή έτσι ώστε το περιεχόμενο να μπορεί να αποκόπτεται αυτόματα σε ένα email HTML. Έτσι, για όσους θέλουν να κάνουν κράτηση μέρους του ενημερωτικού δελτίου email τους για τα άρθρα τους στο Blog ή τη Δημοσίευση, θα μπορούσε εύκολα να ενσωματωθεί. Δεδομένου ότι το JavaScript δεν εμφανίζει πραγματικά το περιεχόμενο έως ότου ο πελάτης φορτώσει και εκτελέσει το σενάριο, η πληθώρα των προγραμμάτων περιήγησης JavaScript RSS δεν ήταν χρήσιμη. Χρειαζόμουν ένα πρόγραμμα ανάγνωσης τροφοδοσίας RSS από διακομιστή.

Ξεκίνησα γράφοντας το δικό μου πρόγραμμα ανάλυσης στο ASP χρησιμοποιώντας το αντικείμενο MSXML. Ήμουν σε θέση να αναλύσω περίπου το 75% των τροφοδοσιών RSS κάνοντας αυτό, αλλά μερικές από τις χαλαρές προδιαγραφές XML στις ροές RSS αποδείχθηκαν πολύ δύσκολο να προγραμματιστούν. Μπορείτε να το δείτε σε δράση εδώ. Μπορείτε να μεταβιβάσετε τον μέγιστο αριθμό στοιχείων (ni), τον αριθμό των χαρακτήρων που έχουν αποκοπεί στη λέξη (nc), καθώς και τη διεύθυνση URL. Μπορείτε επίσης να δείτε την πραγματική ροή με μια μεταβλητή εντοπισμού σφαλμάτων εδώ.

Πολλές τροφοδοσίες RSS είναι πραγματικά «βρώμικες» και απαιτούν ανάλυση του κειμένου στο αρχείο XML με κώδικα χειραγώγησης συμβολοσειράς (ugh!). Φυσικά, είμαστε ακόμα στο RSS «νεολαία» μας στο διαδίκτυο, οπότε δεν εκπλήσσομαι. Διαβάστε περισσότερα για τις προδιαγραφές RSS εδώ.

Τέλος, συνάντησα ένα μικρό στολίδι. Βρήκα μια δωρεάν τάξη ASP για λήψη. Είναι λίγο αργό, αλλά δεν βρήκα μια ροή που δεν μπόρεσε να διαβάσει. Έχω εδώ μια στατική έκδοση και μια δυναμική έκδοση εδώ.

Ένα ζευγάρι σημειώνει το σενάριο. Χρειάστηκε να διαγράψω ορισμένες ετικέτες HTML στις επιστρεφόμενες περιγραφές. Το έκανα με λίγη λειτουργία καθαρισμού βρήκα:

Λειτουργία RemoveHTML (strText) Dim nPos1 Dim nPos2 nPos1 = InStr (strText, ">") Do While nPos1> 0 nPos2 = InStr (nPos1 + 1, strText, ">") If nPos2> 0 Στη συνέχεια strText = Left (strText, nPos1 - 1) & Mid (strText, nPos2 + 1) Else Exit Do End if nPos1 = InStr (strText, ">") Loop RemoveHTML = strText End Function

Πρόσθεσα επίσης ένα άλλο τακτοποιημένο κομμάτι κώδικα: Μερικές φορές, ίσως θέλω να εμφανίσω περισσότερο ή λιγότερο περιγραφή. Ωστόσο, αν περιορίσω απλώς τον αριθμό των χαρακτήρων, τότε θα μπορούσα να διακόψω την περιγραφή στο μέσο της λέξης. Δεν θέλω να το κάνω αυτό!

Λειτουργία Cutoff (strText, intChars) dim intLength dim j intLength = len (strText) if intChars> intLength τότε για j = intChars στο 0 step -1 if mid (strText, j, 1) = "" και μετά βγείτε για το επόμενο εάν j> 0 τότε strText = αριστερά (strText, j-1) & "..." else strText = strText end if end if Cutoff = strText End Function

(Είχα κάποια προβλήματα με την σωστή εμφάνιση του κωδικού μου σε αυτήν την καταχώριση… επιτρέψτε μου να ξέρω αν έχετε προβλήματα με οποιαδήποτε από αυτές τις λειτουργίες!)

Παρατήρησα αρκετά ακόμη εργαλεία στο διαδίκτυο. Υπάρχει ένα
. NET έκδοση, πολλές εκδόσεις PHP, ένας τόνος εκδόσεων JavaScript.

Εν κατακλείδι, ελπίζω ότι οι προδιαγραφές RSS θα συνεχίσουν να τελειοποιούνται και οι πραγματικές ροές πληρούν τις προδιαγραφές XML σε όλες τις περιπτώσεις. Δωρεάν εφαρμογές όπως TypePad, WordPress κ.λπ. πρέπει να βελτιώσουν τη λειτουργικότητά τους RSS. Πρόσθετα ιστολόγια όπως το MySpace, το Xanga, το LiveJournal κ.λπ. πρέπει να βελτιώσουν τη λειτουργικότητά τους RSS. Το RSS ΕΙΝΑΙ ισχυρό…Κρις Μπαγκκότ έγραψε ένα ωραίο κομμάτι στο Email εναντίον RSS. Πιστεύω ότι ο συνδυασμός της λειτουργικότητάς τους θα μπορούσε να αυξήσει τον αντίκτυπο και των δύο!

Ποια είναι η γνώμη σας;

Αυτός ο ιστότοπος χρησιμοποιεί το Akismet για να μειώσει το spam. Μάθετε πώς επεξεργάζονται τα δεδομένα των σχολίων σας.