IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Ouvrir un lien d'un xml dans une listbox [Débutant]


Sujet :

VB.NET

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 5
    Points : 5
    Points
    5
    Par défaut Ouvrir un lien d'un xml dans une listbox
    Bonjour je développe actuellement mon application iptv reservé ( question de legalité ) aux chaines de la tnt avec les liens officiel de france 2 etc etc

    passons a mon probleme

    j'ai une listbox et je doit demander au bouton de lire le flux de france 2 quand le clique sur france 2 a france 3 etc etc et aussi lancer vlc ( sachant que j'ai pour le moment 18 chaines de la tnt dans le xml je me voit mal faire 18 boutons mdr )

    donc voici le code de mon xml pour le moment

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <channel>
    <name>France 2</name>
    <url>http://live.francetv.fr/simulcast/France_2/hls_v1/index.m3u8</url>
    </channel>
    et voici le code vb net

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    Imports System.Xml
     
    Public Class Form1
        Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
            Dim doc As New XmlDocument()
            doc.Load("C:\Users\remysimpson\Desktop/test.xml")
            For Each serverNode As XmlNode In doc.SelectNodes("/channels/channel")
                Dim name As String = serverNode.SelectSingleNode("name").InnerText
                ListBox1.Items.Add(name)
            Next
        End Sub
     
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Dim myShell
            myShell = Shell("""C:\Program Files (x86)\VideoLAN\VLC\vlc.exe"" """"", AppWinStyle.MaximizedFocus)
        End Sub
    j'ai regarder sur pas mal de forum et aucune personne a casiment le meme probleme

    bien sur l'adresse du xml va changer de seras dans le dossier du logiciel c'est juste pour les test qu'il et dans mon bureau
    merci d'avance

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur .Net / Delphi
    Inscrit en
    Juillet 2002
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .Net / Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2002
    Messages : 738
    Points : 1 745
    Points
    1 745
    Par défaut
    Bonjour,

    Tu pourrais passer par une classe Chaine qui contiendrait le nom et l'url. Tu lis le xml, crées une instance de classe par chaine et stocke la chaine comme item de ta combo (pour faire simple).

    La classe Chaine :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Public Class Chaine
        Property Name As String
        Property Url As String
     
        Public Sub New(aName As String, aUrl As String)
            Name = aName
            Url = aUrl
        End Sub
     
        Public Overrides Function ToString() As String
            Return Name
        End Function
    End Class
    Tu stockes les chaines dans la combo :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
       Dim doc As New XmlDocument()
       doc.Load("C:\Users\remysimpson\Desktop/test.xml")
       Dim Chaine As Chaine
       For Each serverNode As XmlNode In doc.SelectNodes("/channels/channel")  
         aChaine = New Chaine(serverNode.SelectSingleNode("name").InnerText,serverNode.SelectSingleNode("url").InnerText)
         ListBox1.Items.Add(aChaine)
       Next
    End Sub
    Enfin à la sélection de la chaine dans la combo, tu récupères l'objet avec son url :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged
      Dim aChaine As Chaine
      aChaine = CType(CType(sender, ComboBox).SelectedItem, Chaine)
      Label1.Text = aChaine.Url
    End Sub
    Après tu peux aussi stocker toutes les chaines dans une liste (si ça peut te servir pour autre chose)

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    merci je regarde ça et je te tien au jus

    par contre je pense que je me suis mal exprimer

    dans le button 1 je veux ouvrir l'url avec vlc ( bon je sais faire ça c'est pas un probleme enfin j'espere car actuellement j'ai fait ligne par ligne ( donc 18x le meme code ) donc je vais voir si je peux adapté le code ( oui je suis un gros noob mdr )

    edit : apparement ça marche pas ou alors j'ai mal fait je voit pas l'url nul part

  4. #4
    Membre expérimenté
    Homme Profil pro
    Développeur .Net / Delphi
    Inscrit en
    Juillet 2002
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .Net / Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2002
    Messages : 738
    Points : 1 745
    Points
    1 745
    Par défaut
    Je n'ai pas testé la récupération de l'url dans le xml. Je supposais ce code devait faire l'affaire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    serverNode.SelectSingleNode("url").InnerText
    J'avoue que j'ai plutôt tendance à utiliser Xml.Linq pour traiter le xml. Tu dois pouvoir le corriger pour que ça fonctionne.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    heu corriger moi tout seul ça va etre chaud j'ai des n,otion ouais mais a ce point mme si ça doit etre facile j'ai jamais toucher les code qui lie le xml au vb enfaite

  6. #6
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Salut,

    l'accès XML d'ebastien fonctionne bien semble-t-il.
    En partant de son code (je remets pas sa classe Chaine), voilà à quoi pourrait ressembler ton code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    Public Class frmMain
     
        ' event load où on charge les données du fichier XML
        Private Sub frmMain_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            Dim doc As New XmlDocument()
            doc.Load("C:\tmp\chaines.xml")
            For Each serverNode As XmlNode In doc.SelectNodes("/channels/channel")
                lstChaine.Items.Add(New Chaine(
                                    serverNode.SelectSingleNode("name").InnerText,
                                    serverNode.SelectSingleNode("url").InnerText))
            Next
        End Sub
     
        ' l'event click de l'unique bouton qui lancera la chaine sélectionnée (moi j'affiche juste l'URL dans une MessageBox, à toi de faire le taf)
        Private Sub btnShow_Click(sender As Object, e As EventArgs) Handles btnShow.Click
     
            ' si l'utilisateur n'a pas choisi de chaine on le lui dit gentiment (on pourrait simplement ne rien faire, voire enabler/disabler le bouton)
            If lstChaine.SelectedItem Is Nothing Then
                MessageBox.Show("choisis une chaine boulet !")
     
            ' sinon on cast l'item en Chaine pour accéder à son attribut Url
            Else
                Dim currentItem As Chaine
                currentItem = CType(lstChaine.SelectedItem, Chaine)
                MessageBox.Show(currentItem.Url)
            End If
     
        End Sub
     
    End Class
    Bon dev.
    Plus je connais de langages, plus j'aime le C.

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    merci je crois que j'ai juste mis au mauvais endroit son code enfaite mdr

    je vais testé ( si ça marche pa sje comprend pas mdr )

    edit : le code marche parfaitement j'avais juste mal compris son message maintenant reste plus qu'a réussir a ouvrir vlc avec le lien j'avais fait un code bizarre pour ouvrir le lien avec vlc mais bon desormais c'est plus simple mdr

    edit : c'est bon ça marche j'ai réussit encore merci je laisse la fin de mon code a ceux qui veulent ( ça peux toiujours servir )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
                System.Diagnostics.Process.Start("C:\Program Files (x86)\VideoLAN\VLC/vlc.exe", currentItem.Url)
    encore merci

  8. #8
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Je suis au boulot donc je peux pas tester cette partie, mais le lancement de l'URL par VLC devrait être un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Process.Start("C:\Program Files\VideoLAN\VLC\vlc.exe", currentItem.Url)
    edit : bon ben t'avais même pas besoin de nous pour cette partie
    Plus je connais de langages, plus j'aime le C.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ouvrir des données xml dans une table Access
    Par nomade333 dans le forum VBA Access
    Réponses: 3
    Dernier message: 15/03/2008, 09h17
  2. Insérer des données XML dans une ListBox
    Par Corlo dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 25/10/2007, 11h49
  3. ouvrir un fichier XML dans une application tierce
    Par boulator dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 09/06/2006, 11h44
  4. Réponses: 3
    Dernier message: 01/12/2003, 13h14
  5. problème xsl : inclure une donnée xml dans une balise html
    Par djodjo dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 03/01/2003, 09h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo