Visualizzazione dei risultati da 1 a 9 su 9

Discussione: Rss da Asp a Asp.NEt

  1. #1

    Rss da Asp a Asp.NEt

    Ciao ragazzi,
    devo implementare su un sito asp.net un codice che ho utilizzato in asp relativamente alla visualizzazione di rss presi dal corriere.

    Il codice è questo, ma purtroppo mi dà errore.
    Sapete dirmi come posso risolvere?
    Grazie a tutti

    codice:
    'Inizializziamo il Parser MS XML
    Set objXML = Server.CreateObject("Microsoft.XMLDOM")
    objXML.setProperty "ServerHTTPRequest", true 
    objXML.async = False
    
    'Carica il file XML o il feed rss in formato xml
    strFile= "http://www.corriere.it/rss/homepage.xml"
    objXML.Load (strFile)
    Set AllItems = objXML.selectNodes("//channel")
    
    For I = 0 to (AllItems.Length - 1)  
    Set Post = AllItems(I).selectNodes("item")  
    For J = 0 to (Post.Length-1)      
    Set title = Post(J).selectNodes("title")      
    Set description = Post(J).selectNodes("description")      
    Set link = Post(J).selectNodes("link")
    
    testi = testi & ""&title(0).text&" - "
    
     
    Next    
    Set title = Nothing    
    Set description = Nothing    
    Set link = Nothing    
    Set Post = Nothing
    Next

  2. #2
    Ciao ragazzi,
    ho iniziato e provato a convertire il file in asp in aspx, e il risultato è il seguente:

    codice:
    Imports System.Xml
    Imports System.Xml.XmlDocument
    
    Partial Class rss
        Inherits System.Web.UI.Page
    
        Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    
            Dim Doc As New XmlDocument
            Doc.Load("http://www.corriere.it/rss/homepage.xml")
    
            Dim list As XMLNodeList
            Dim node As XMLNode
            Dim attr As System.Xml.XmlAttribute
            'list = Doc.SelectNode("//Item")
            list = Doc.SelectNodes("//channel")
    
            Dim x As Integer
            For x = 0 To list.Count - 1
                node = list(x)
                For Each attr In node.attributes
    attr.??? 
                Next
    
            Next
    
        End Sub
    End Class
    Adesso però mi sono completamente arenato...
    Il problema dovrebbe essere nella riga in grassetto, cioè in pratica dovrei lì recuperare i singoli nodi e poi mostrarli.
    Sapete dirmi come posso fare?
    Grazie a tutti

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    559
    devi associare la fonte dati a un oggetto come il GridView ad esempio! dato che hai un xml, ci abbini anche un XmlDataSource.

    puoi prendere spunto da qui:
    http://msdn.microsoft.com/it-it/libr....xmldatasource(VS.80).aspx
    se nella vita avro avuto la possiblita di aiutare qualcuno non avro vissuto invano (E. Dikinson)

  4. #4
    Ciao Stefanomnn,
    grazie per la risposta, in verità adesso stavo lavorando su di un altro tipo di codice che mi ha portato risultati quasi completi:

    codice:
            Dim Doc As New XmlDocument
            Dim url As String
            url = "http://www.corriere.it/rss/homepage.xml"
            Doc.Load(url)
    
            Dim DocLeggi As New XmlTextReader(url)
            Dim testo, link As String
    
    
            Do While DocLeggi.Read = True
                If DocLeggi.NodeType = XmlNodeType.Element Then
    
                    If DocLeggi.Name = "title" Or DocLeggi.Name = "link" Then
                        testo = DocLeggi.ReadString()
    
    
                        output.Text = output.Text & testo & "
    "
                    End If
                End If
    
    
            Loop
    In pratica adesso riesco a recuperare sia il titolo che il link, purtroppo non riesco in nessuna maniera ad associare il link alla news...
    Magari puoi aiutarmi anche in questa situazione?
    Grazie mille

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    559
    mi mostri un esempio con la struttura dell' xml?
    se nella vita avro avuto la possiblita di aiutare qualcuno non avro vissuto invano (E. Dikinson)

  6. #6
    e ma io la struttura dell'xml non la conosco...
    lo prendo direttamente dal sito del corriere.it

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    559
    Prova con qualcosa di simile: fai attenzione in particolare all' ultimo if!
    Codice PHP:
            string currentChannelLink,currentChannelTitle;
                while (
    reader.Read())
                {
                    
                    
    XmlNodeType type reader.NodeType;
                    
                    if (
    type == XmlNodeType.Element && reader.LocalName == "channel")
                    {
                        
    currentChannelLink "";
                        
    currentChannelTitle "";                    
                    }
                    if (
    type == XmlNodeType.Element && reader.LocalName == "title")
                    {
                        
    currentChannelTitle reader.ReadInnerXml();
                    }
                    if (
    type == XmlNodeType.Element && reader.LocalName == "link")
                    {
                        
    currentChannelLink reader.ReadInnerXml();
                    }
                    if (
    type == XmlNodeType.EndElement && reader.LocalName == "channel")
                    { 
                        
    //a questo punto hai il title e il link del channel
                        //e componi l'output
                    
    }
                } 
    se nella vita avro avuto la possiblita di aiutare qualcuno non avro vissuto invano (E. Dikinson)

  8. #8
    Perfetto, alla fine l'ho riscritto così in vb:
    codice:
    Dim currentChannelLink As String, currentChannelTitle As String
            While reader.Read()
                Dim type As XmlNodeType = reader.NodeType
    
    
                If type = XmlNodeType.Element AndAlso reader.LocalName = "title" Then
                    currentChannelTitle = reader.ReadString
                End If
                If type = XmlNodeType.Element AndAlso reader.LocalName = "link" Then
                    currentChannelLink = reader.ReadString()
                    output.Text = output.Text & "" & currentChannelTitle & " - "
                End If
    
            End While
    L'unica cosa è che prima delle info, escono due link che si chiamano corriere, e corriere.it, pensi sia possibile partire direttamente dal secondo terzo link così da non farli visualizzare?

    Grazie mille per l'aiuto

  9. #9
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    559
    ops.. avevo fatto un piccolo errore: devi prendere l'elemento "item" non channel.
    il codice esatto sarebbe il seguente
    Codice PHP:
               while (reader.Read())
                {
                    
                    
    XmlNodeType type reader.NodeType;
                             
                    if (
    type == XmlNodeType.Element && reader.LocalName == "title")
                    {
                        
    currentChannelTitle reader.ReadInnerXml();
                    }
                    if (
    type == XmlNodeType.Element && reader.LocalName == "link")
                    {
                        
    currentChannelLink reader.ReadInnerXml();
                    }
                    if (
    type == XmlNodeType.EndElement && reader.LocalName == "item")
                    {
                        
    //a questo punto hai il title e il link dell' item
                        //e componi l'output
                    
    }
                } 
    ti conviene questo approccio, perche' in questo modo se anche title e link fossero in ordine inverso (cioe prima link e poi title) non avresti problemi
    se nella vita avro avuto la possiblita di aiutare qualcuno non avro vissuto invano (E. Dikinson)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.