Manipulation xml et dom - tutoriel sur fond de flux rss

Soyez le premier à donner votre avis sur cette source.

Vue 14 830 fois - Téléchargée 936 fois

Description

Bonjour,

Je mets ici en ligne un code que j'avais réalisé avec un de mes contacts MSN et amis, il y a quelques temps, afin qu'il puisse mieux apréhender l'utilisation du DOM, et comprendre un peu mieux l'XML

bien sur, rien de révolutionnaire ici, mais je pense que ça pourrais en aider quelques uns...

il s'agit simplement d'afficher dans une zone de liste le RSS des dernières sources déposées sur VbFrance, et e pouvoir filtrer l'affichage, en recherchant une chaine dans la description des sources...

Source / Exemple :


'# Une fonction qui pourrait être utile... (A ADAPTER)

'# Cette fonction nous permet de récupérer le texte d'un noeud, sans générer d'erreur...
'# On utilise pour cela, un noeud racine (optionnelle)
'# Et une requète XPATH
Private Function GetNodeText(ByRef vsQuery As String, Optional ByRef voRoot As IXMLDOMNode) As String
Dim oRoot As IXMLDOMNode
Dim oNode As IXMLDOMNode
    If voRoot Is Nothing Then
        '# Si on ne fournis pas de racine, le point de départ (noeud parent) du noeud recherché
        '# est tout simplement le document, le tout premier noeud : 'rss'
        Set oRoot = moDOM
    Else
        '# Sinon, on prend bien évidemment le noeud fournis en parametre
        Set oRoot = voRoot
    End If
    '# Ici, on appelle la méthode de notre objet Node, qui permet d'extraire un autre noeud.
    Set oNode = oRoot.selectSingleNode(vsQuery)
    '# Si l'extraction a été fructueuse,
    If Not oNode Is Nothing Then
        '# On renvoie le texte de l'element
        GetNodeText = oNode.Text
    End If
End Function

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

attaque
Messages postés
26
Date d'inscription
vendredi 23 septembre 2005
Statut
Membre
Dernière intervention
4 novembre 2009
-
Oups, désolé pour le double. J'ai oublier de préciser que le flux du site a beau être avec des images, etc... Celui que le programme récupère reste lui neutre sans plus.
attaque
Messages postés
26
Date d'inscription
vendredi 23 septembre 2005
Statut
Membre
Dernière intervention
4 novembre 2009
-
Re, justement j'utilise un flux avec liens, images et autre depuis le début ^^ car c'est ce que je recherche.

Quand j'entre ton code le WebBrowser reste blanc.

Je génère le fichier .htm mais lorsque je ferme il s'auto supprime.

Merci
Renfield
Messages postés
17283
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
21 juillet 2019
56 -
dépend du RSS que tu prends, remarques, j'étais resté sur le flux CS ^^

SaveAFile "c:\DFlux.htm", Text1
visualisation.Navigate "c:\DFlux.htm"

quel interet de générer un tel fichier temporaire ?

visualisation.navigate "about.blank" => pour créer un visualisation.document

visualisation.document.Write GetNodeText("description", oNode)
visualisation.document.Close

et hop, tout en mémoire ^^
attaque
Messages postés
26
Date d'inscription
vendredi 23 septembre 2005
Statut
Membre
Dernière intervention
4 novembre 2009
-
Non, c'étais bien du html car j'ai ajouter le code " Pas exactement mais presque je l'ai plus :/ ":

Sub SaveAFile(Path, strFile)
On Error Resume Next
Kill Path
Open Path For Output As #1
Print #1, strFile
DoEvents
Close #1
End Sub

Private Sub CcList_ItemClick(ByVal Item As MSComctlLib.ListItem)

Text1.Text = GetNodeText("description", oNode)
visualisation.Visible = True
SaveAFile "c:\DFlux.htm", Text1
visualisation.Navigate "c:\DFlux.htm"
End Sub

C'étais un code du style comme ça et quand la news s'afficher dans le WebBrowser les images, liens etc de la new étais bien afficher.

Merci
Renfield
Messages postés
17283
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
21 juillet 2019
56 -
l'html ? comment se pourrait il ? on se base uniquement sur le RSS (xml) du site.

si tu as vu des balises type <description> etc. c'est le balisage XML, rien d'alarmant.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.