Avatar billede ducks Nybegynder
08. marts 2006 - 19:00 Der er 14 kommentarer og
1 løsning

RSS reader modul

Hvor finder jeg et modul eller function eller class eller noget andet som kan læse RSS? Den jeg hidtil har brugt virker ligepludselig ikke mere, muligvis fordi siden den læser fra har opdateret til en RSS version min kode ikke forstår.

Den jeg bruger nu, skrev jeg fx bare:

Private oFR As CombatFeedReader.FeedReader
Dim oItem As CombatFeedReader.FeedItem
Set oItem = oFR.FeedItems.Item(lstItems.ListIndex + 1)
lbItemTitle.Caption = oItem.Title
lbItemDesc.Caption = oItem.Description
lbItemURL.Caption = oItem.URL

Hvis i kender nogen der er lige til at smide ind, og kræver nogenlunde ligeså lidt kode ville det være fint :)
Avatar billede stengaard Praktikant
08. marts 2006 - 19:28 #1
følger lige med
Avatar billede spaceus Nybegynder
08. marts 2006 - 19:53 #2
er det ikke bare en xml parser?
Avatar billede ducks Nybegynder
08. marts 2006 - 20:14 #3
spaceus, hvis det virker, så bare fortæl mig hvad jeg skal gøre :)
Avatar billede spaceus Nybegynder
08. marts 2006 - 20:21 #4
damn så I lige aben skifte skulder ;) nå men jeg kan da lige kigge på det
Avatar billede spaceus Nybegynder
08. marts 2006 - 21:21 #5
Imports System.Xml
Module Module1
    Sub Main()

        ' Create an isntance of XmlTextReader and call Read method to read  the(file)
        Dim reader As XmlTextReader = New XmlTextReader("C:\\rss.xml")

        While reader.EOF = False
            reader.Read()
            If reader.Name.ToString() = "title" Then
                Console.WriteLine("Title: " + reader.ReadString())
            End If
            If reader.Name.ToString() = "description" Then
                Console.WriteLine("description: " + reader.ReadString())
            End If
            If reader.Name.ToString() = "link" Then
                Console.WriteLine("link: " + reader.ReadString())
            End If

        End While

    End Sub
End Module

xml til test
<?xml version="1.0" encoding="ISO-8859-1" ?>
<list>
    <item>
        <title>ble</title>
        <link>www.her.dk</link>
        <description>det jo her</description>
    </item>
    <item>
        <title>ble</title>
        <link>www.her.dk</link>
        <description>det jo her</description>
    </item>
</list>
Avatar billede spaceus Nybegynder
08. marts 2006 - 21:27 #6
nå ja forresten hvis du vil ha dem i et objekt så lav et
Public Class FeedItem
    Public title As String
    Public description As String
    Public link As String

End Class

ala det der hvis du vil ha flere attributter med så find deres navn og fyld på
ex:
If reader.Name.ToString() = "title" Then
                feedObjekt.title=reader.ReadString()
End If
Avatar billede ducks Nybegynder
08. marts 2006 - 21:41 #7
Hvilken abe skifter skulder :S

Enten er der noget galt med dit eksempel, eller også er jeg bare en klovn der ikke kan finde ud af at copy/paste, jeg har prøvet at sætte det ind i en Class, module, form1 men fejl ved alle, jeg har også prøvet at inkludere MS XML2.3
Avatar billede spaceus Nybegynder
08. marts 2006 - 22:07 #8
det skal ind i et module og xml'en skal ligge i c: og hedde rss.xml

som det er sat op der
Avatar billede ducks Nybegynder
08. marts 2006 - 22:31 #9
Jeg har prøvet både modul og class modul, begge steder får jeg rødt i:

Dim reader As XmlTextReader = New XmlTextReader("C:\\rss.xml")
reader.Read()
End While (Hedder Wend?)
End Module


Og så brokker den sig over

Imports System.Xml : Invalid outsource procedure
Avatar billede spaceus Nybegynder
08. marts 2006 - 22:33 #10
lol, har jo nok brugt vb.net syntax
Avatar billede ducks Nybegynder
08. marts 2006 - 22:37 #11
Kan du lave det om til VB6 :(
Avatar billede spaceus Nybegynder
08. marts 2006 - 22:56 #12
jeg har ikke lige så jeg kan teste vb6 pt. men kan du ikke bruge

Dim reader as New ActiveXObject("microsoft.XMLdom")
reader.load("c:\\rss.xml")
eller måske
Dim reader As New DOMDocument
og så en lykke af en slags til at løbe alle noder igennem..
Avatar billede ducks Nybegynder
08. marts 2006 - 23:07 #13
Nej det virkede ikke rigtig, men jeg har fundet dette - vender tilbage når jeg har lavet en "RSS oversættelse":

Create an XML file similar to the following and save it as c:\customerdata.xml.
CustomerData.xml

<customerdata>
  <customer>
    <firstname>Frank</firstname>
    <lastname>Cuttengham</lastname>
    <address>123 Developer Lane</address>
    <city>Denver</city>
    <state>Colorado</state>
    <zip>90210</zip>
    <phone>433-3453</phone>
    <email>frankc@home.com</email>
  </customer>
  <customer>
    <firstname>Bob</firstname>
    <lastname>Michels</lastname>
    <address>544 Center St.</address>
    <city>Calgary</city>
    <state>Alberta</state>
    <zip>T2Z6S4</zip>
    <phone>345-7765</phone>
    <email>bob@hotmail.com</email>
  </customer>
</customerdata>

In Visual Basic create a new project and add a reference to MSXML3. On Form1 copy and paste this code and then run the project.
Form1

Private Sub Form_Load()
  Dim objDoc As MSXML2.DOMDocument40
  Dim objNodeList As MSXML2.IXMLDOMNodeList
  Dim objNode As MSXML2.IXMLDOMNode
       
  Set objDoc = New MSXML2.DOMDocument30
 
  If objDoc.Load("c:\customerdata.xml") Then
    If Not objDoc Is Nothing Then
      Set objNodeList = objDoc.selectNodes("customerdata/customer/firstname")
           
      If Not objNodeList Is Nothing Then
           
        'Loop though each node in the node list
        For Each objNode In objNodeList
          Debug.Print objNode.Text
        Next
      End If
    End If
  End If
End Sub

The two customer's names from the XML file will be listed in your debug window.
Avatar billede ducks Nybegynder
18. marts 2006 - 12:39 #14
.
Avatar billede spaceus Nybegynder
19. marts 2006 - 19:34 #15
vi skal lige se løsningen
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester