Toon posts:

[ASP/XML] Xhtml parsen naar xml voor rss feed

Pagina: 1
Acties:

Verwijderd

Topicstarter
Aangezien het hier in België weer eens aan het regenen is, kwam ik op het idee om wat rss feeds voor mijn site te maken 8)

Na wat zoeken kwam ik op een vrij geweldig scriptje (naar mijn mening) om rss feeds (1.0) te maken. Je hoeft dus enkel je asp script de data te laten doorgeven aan de rss-class. (mja ik wou ff rap een nieuwe feature op de site, dus niet het warme water opnieuw uitvinden)

De pagina waarom het gaat, is een gastenboek ( http://flabbergasted.be/index.asp?pagina=gb ) en is valid xhtml 1.0.
De feed komt hier terecht: http://www.flabbergasted.be/rss/gbrss.asp

Nu blijkt dat xml niet tegen een hele hoop rare tekens kan, zelfs niet tegen ´.

Ik zou natuurlijk kunnen gaan kloten met CDATA en stuff. Ik wil echter een propere feed. Ik kan mij inbeelden dat ik niet de enige ben met dit probleem, dus even polsen op GoT.

Er zijn twee opties:
1. Ik ga uitzoeken waartegen xml en rss allemaal niet kunnen en typ een hoop code om mijn valid xhtml naar valid xml om te zetten :O
2. Jullie weten iets beter

Google vindt ook niet zo direct iets.
BTW: dit geeft de validator :(
http://feedvalidator.org/...ergasted.be/rss/gbrss.asp

Update (nog voor ik het post, heb ik al wat verbeterd):
Heb die ´door ' laten veranderen, 1 error weg...
Nu nog een vijftal "link must be a full and valid URL (10 occurrences" errors :(
Ik heb echt geen gedacht hoe die eruit zouden moeten.
En eeuh, nu kan Awasu hem opeens wel lezen, maar de errors zitten er nog in 8)7

Update 2:
heb eens een nieuwsfeed gemaakt voor mijn site, en die werkt wel, dus het zit ergens in de code.
ASP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
Set cnDB = OpenGuestbookDB()
dim tijdel
Dim nul
nul = 0
Dim rsData         ' As ADODB.Recordset
Dim strSQL        ' As String
Dim strURL        ' As String
Set rsData = Server.CreateObject("ADODB.Recordset")
   
rsData.Open "SELECT * From Guestbook Where Bericht <> '' ORDER BY Gb_ID Desc", cnDB, adOpenStatic
Do while not rsData.eof and nul<10 and rsData("Bericht") <> "" 
' om heeeel zeker te zijn dat bericht niet leeg is (ivm nieuwsbrief)
With RSS.Item
    ' A-ha, an item. At last!
tijdel=Replace(rsData("Bericht"),
 "emoticons_bestanden","http://www.flabbergasted.be/emoticons_bestanden") ' url fixen
tijdel=Replace(tijdel,"&acute;","'") ' anders doet xml raar
    .Title       = ":: " & rsData("Naam") & " :: "& rsData("Datum") & " ::"
    .Link        = "mailto:" &rsData("Email")
    .Description = tijdel



    

    ' If we don't do this, the next item will have these properties until over
'written, and this item won't be added to the feed. Never leave it out.
    .AddToFeed
End With
rsData.movenext
nul=nul+1
Loop
rsData.close
Set rsData=nothing

Voorbeeldje van een error: <br/> </description><title/><link/><description/><title/><link/><description/></item><item rdf:about="mailto:josmetdebros@hotmail.com"><title>:: Jos met de bros :: 2/06/2004 ::</title><link>mailto:josmetdebros@hotmail.com</link><description>Iere si dare si,
-> lege descriptions en teveel link-tags |:(

[ Voor 56% gewijzigd door Verwijderd op 10-06-2004 19:16 ]


  • Infinitive
  • Registratie: Maart 2001
  • Laatst online: 25-09-2023
xhtml omzetten naar xml voor rss feed
Hint. Je kan dat beter op een andere manier zien:
xml omzetten naar:
1) xhtml
2) rss feed
Bijvoorbeeld via XSLT. De reden waarom mag je zelf bedenken ;)

putStr $ map (x -> chr $ round $ 21/2 * x^3 - 92 * x^2 + 503/2 * x - 105) [1..4]


Verwijderd

Topicstarter
mja, het is niet dat ik een xml bestand heb waarin alle data staat.
De data komt uit de database in de vorm van xhtml.
Mijn xhtml pagina's zijn geen xml pagina's die geparsed worden door een xsl pagina.

Maar dat gedeelte is al in orde (denk ik), het gaat nu over die andere errors + het feit dat ik een paar lege items krijg in awasu (van de 10 zijn er enkele leeg bij mij)

Verwijderd

Topicstarter
Fixed: omdat er 2maal hetzelfde email voorkwam (2 berichten van dezelfde persoon in de laatste 10 berichten), werd dit als 1 xml tag geparsed
-> rss in de war :)