[ASP/RSS]Rss feed parsen

Pagina: 1
Acties:

  • Phenomenon
  • Registratie: December 2000
  • Laatst online: 01-04 13:18
Ik zit me nu al een halve dag een RSS feed te proberen te parsen d.m.v. asp.


Ik heb de volgende rss feed
XML:
1
2
3
4
5
6
7
8
9
10
11
12
13
<?xml version="1.0" encoding="iso-8859-1" ?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://my.netscape.com/rdf/simple/0.9/">

<channel>
    <title>YADA</title>
    <link>kfdsj</link>
    <description>flkflfd</description>
</channel>

<item>
    <title>tekst van tile</title>
    <link>http://www.linknaartitel</link>
</item>


Deze berichten probeer ik dus op een pagina weer te geven.

ASP:
1
2
3
4
5
6
7
8
9
10
11
12
'//Begin Forum Tracker
Set Http_Obj = Server.CreateObject("Microsoft.XMLHTTP")
Http_Obj.Open "GET","http://10.0.0.155/forum/rdf.php",false
Http_Obj.Send()

Set Obj_XML = Server.CreateObject("MSXML2.DomDocument.4.0")
Obj_XML.async = False
Obj_XML.Load(Http_Obj.ResponseXML)

Set objLst = obj_XML.getElementsByTagName("item")

Response.Write(objLst.Length)


Alleen objlst blijft op 0 staan.
Pak ik echter met 'GetElementsByTagName("*")' dan krijg ik wel een waarde in ObjLst.Length

Maar weet iemand hoe ik me ObjLst.length goed gevuld krijg, dat ik dus met behulp van "objHdl.childNodes(0).text" mijn waarden eruit krijg :?

[ Voor 13% gewijzigd door Phenomenon op 12-09-2004 13:17 ]


  • Phenomenon
  • Registratie: December 2000
  • Laatst online: 01-04 13:18
Hmmm een subtiel schopje dan maar :)

  • tomato
  • Registratie: November 1999
  • Niet online
Euhm tsja, het komt dan toch neer op het simpel parseren van een XML document, ik weet zeker dat daar echt genoeg voorbeelden van te vinden zijn.

Een puntje is alleen wel dat de RSS feed dan XML well-formed moet zijn (anders kun je hem niet meer in lezen) en dat zijn ze in de praktijk lang niet allemaal. Als je daar rekening mee wilt houden kun je eens kijken naar Mark Pilgrim's RSS Parser die met allerlei fouten in feeds uitstekend omgaat. Het is Python code, maar met een beetje inzicht moeten de ideeen eruit wel om te bouwen zijn.

Overigens is niet iedereen gecharmeerd van zo'n aanpak, het mooie van XML is immers dat er vele processing tools voor beschikbaar zijn, mits je document well-formed is. Is het dat niet, dan is er wat voor te zeggen het gewoon niet te accepteren en te 'eisen' dat het aangepast wordt in plaats van er moeite voor te doen het toch in te lezen. Maar dit terzijde ;)

  • Phenomenon
  • Registratie: December 2000
  • Laatst online: 01-04 13:18
RSS Feed

Deze feed wil ik bijvoorbeeld gebruiken. Het lijkt me dat daar geen fouten inzitten. Maar dan zou ik toch gewoon met GetElementByTagName naar 'Item' moeten kunnen springen?

Ik vindt het zo vreemd dat hij die niet pakt namelijk.

[ Voor 3% gewijzigd door Phenomenon op 06-06-2003 11:52 ]


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

Supervisor schreef op 06 juni 2003 @ 09:03:
Hmmm een subtiel schopje dan maar :)
Hoe subtiel ook, kun je de volgende keer netjes 24 uur wachten zoals hier de regel is? :)

Professionele website nodig?


  • hobbit_be
  • Registratie: November 2002
  • Laatst online: 04-07-2025
kun je daar geen XPath voor gebruiken: //item en dan de NodeList afgaan (weet niet wat ASP aankan of dat het .NET only is) ... Maar kan het zijn dat je responseXML nog leeg is?

  • robjanssen
  • Registratie: September 2001
  • Laatst online: 02-08 16:10

robjanssen

Software Developer

Als je de link http://10.0.0.155/forum/rdf.php opent in je browser krijg je dan wel een geldig xml document te zien?
In je voorbeeld in je post ontbreken namelijk de sluitings-tags voor </rdf:RDF>

  • Phenomenon
  • Registratie: December 2000
  • Laatst online: 01-04 13:18
Ja dat gebeurdt wel, ik heb hem namelijk ff ingekort om heb hier te plaatsen.

http://www.burnincows.nl/forum/rdf.php Dit is precies dezelfde feed.

  • robjanssen
  • Registratie: September 2001
  • Laatst online: 02-08 16:10

robjanssen

Software Developer

Deze code werkt bij mij

ASP.NET Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
'//Begin Forum Tracker
Set Http_Obj = Server.CreateObject("Microsoft.XMLHTTP")
Http_Obj.Open "GET","http://www.burnincows.nl/forum/rdf.php",false
Http_Obj.Send()

Set Obj_XML = Server.CreateObject("MSXML2.DomDocument")
Obj_XML.async = False
Obj_XML.Load(Http_Obj.ResponseXML)

Set objLst = obj_XML.getElementsByTagName("item")
For i = 0 To objLst.length - 1
  Response.Write objLst.item(i).xml & "<br>"
Next

Response.Write objLst.Length

Set obj_XML = Nothing
Set objLst = Nothing
Set Http_Obj = Nothing

  • Phenomenon
  • Registratie: December 2000
  • Laatst online: 01-04 13:18
Beetje late reactie, maar ik heb gedaan wat RobJanssen zei, en die doet het.

Hij loopt blijkbaar spaak op DomDocument.4.0. die ik gebruik, wat met MSXML2.DomDocument doet hij het wel goed.

Iig bedankt :)
Pagina: 1