Urgent Fichier Xml, merci de votre aide

Nightcourrier Messages postés 118 Date d'inscription dimanche 12 octobre 2003 Statut Membre Dernière intervention 28 mars 2008 - 14 juin 2004 à 17:03
Nightcourrier Messages postés 118 Date d'inscription dimanche 12 octobre 2003 Statut Membre Dernière intervention 28 mars 2008 - 16 juin 2004 à 04:21
Bonjour,
je vias essayer d'etre le plus clair possible

Mon problème est avec la lecture de fichier XML.

Je suis capable de lire à un endroit précis.

Ex:

Set objXML = CreateObject("MSXML.DOMDocument")

objXML.selectSingleNode("//Mission/PlanInfo/MissionName").Text

Je suis capable aller dans ma balise
//Mission/PlanInfo/MissionName

Mon problème est que mon fichier ne comporte pas toujours le meme nombre de ligne :

ex:

-
- <Zone>
-
<Latitude>-70.92355352</Latitude>
<longitude>47.01558897</longitude>


-
<Latitude>-71.03448227</Latitude>
<longitude>46.93955915</longitude>


-
<Latitude>-71.12920794</Latitude>
<longitude>46.87848602</longitude>


-
<Latitude>-71.16535326</Latitude>
<longitude>46.84358709</longitude>


-

Le nombre de point dans ma balide PlanInfo n'Est pas fixe. Alors j'aimerais savoir comment lire tous les enfants de ma balise PlanInfo

Merci de votre aide
NightCourrier

Nightcourrier :)

23 réponses

cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 6
14 juin 2004 à 17:26
tu as pas dit si tu étais en .net ou VB6

mais si tu es en .Net j'ai faite ce petit module

Imports System.Xml

Module XML
    Public tableau() As String
    Private root As XmlNode
    Public Function openXML(ByVal fichier As String)
        Dim XMLStruct As New XmlDocument

        XMLStruct.Load(fichier)
        root = XMLStruct.DocumentElement

    End Function

    Public Function lectureXML(ByVal valeur As String) As String
        Dim temp As String
        Dim position As Integer

        temp = root.Item(valeur).InnerText
        position = InStr(temp, vbCr)
        If position <> 0 Then
            Return (Mid(temp, 1, position - 1))
        Else
            Return (temp)
        End If
    End Function

    Public Function lectureXML(ByVal parent() As String, ByVal valeur As String) As String
        Dim i As Integer
        Dim temp As String
        Dim position As Integer
        Dim xmlTemp As XmlNode

        xmlTemp = root.Item(parent(0))
        If isOpenXML(xmlTemp) Then
            For i = 1 To UBound(parent)
                xmlTemp = xmlTemp.Item(parent(i))
            Next i
            temp = xmlTemp.Item(valeur).InnerText
            position = InStr(temp, vbCr)
            If position <> 0 Then
                Return (Mid(temp, 1, position - 1))
            Else
                Return (temp)
            End If
        End If
    End Function

    Public Function isOpenXML(ByVal xmlTemp As XmlNode) As Boolean
        Dim temp As String
        Try
            temp = xmlTemp.InnerText
            Return True
        Catch
            Return False
        End Try
    End Function
End Module


elle permet d'ouvrir un fichier et de le lire de 2 façons. Soit lire une racine en envoyant que sont nom, soit en envoyant le nom qu,on veux lire et un tableau qui se trouve à être le chemin

mon tableau en haut, c'est au lieu d,en crée un a chaque fois, je réutilise le même
0
Nightcourrier Messages postés 118 Date d'inscription dimanche 12 octobre 2003 Statut Membre Dernière intervention 28 mars 2008
14 juin 2004 à 17:42
MErci de ton aide mais je suis en vb6 :'(

Nightcourrier :)
0
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 6
14 juin 2004 à 17:49
ça devrais se ressembler beaucoup, XML est assez récent, donc la différence entre VB6 et VB.net doit-être minime
0
Nightcourrier Messages postés 118 Date d'inscription dimanche 12 octobre 2003 Statut Membre Dernière intervention 28 mars 2008
14 juin 2004 à 18:18
Je test le tout et je te redonne des nouvelles merci !!

Nightcourrier :)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Nightcourrier Messages postés 118 Date d'inscription dimanche 12 octobre 2003 Statut Membre Dernière intervention 28 mars 2008
14 juin 2004 à 18:58
Cela ne fonctionne pas ....

Il n'accewpte pas le Import et j'ai pas événement load dans

XMLStruct.Load(fichier)

.load n'existe pas ..

j'Esais de résoudre mon problème ..
Nightcourrier :)
0
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 6
14 juin 2004 à 19:09
j'ai dit semblable, pas identique :-) lol

c'est sur le import existe pas en Vb6, mais la structure de lecture devrait y ressembler
0
Nightcourrier Messages postés 118 Date d'inscription dimanche 12 octobre 2003 Statut Membre Dernière intervention 28 mars 2008
14 juin 2004 à 21:49
Salut Dragon,
je me suis débrouiller pour avec ma lecture du fichier XML ... :) MErci.

J'aurais une autres questions ...

J'aimerais ouvrir mon fichier XML avec world...
Cela fonctionne, cependant je ne suis pas capable de lui donner un format xml ...

J'espère que tu pourras me m'Aider

Merci nightcourrier :)

Nightcourrier :)
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
14 juin 2004 à 21:52
tu pourrais te simplfier la vie :

Menu Projet > References > Microsoft XML

un petit bout de code (aucun test n'est ici effectué....)

Private Sub Form_Load()
    Dim XMl As New DOMDocument30
    XMl.Load "C:\a.xml"
    
    Dim Node As IXMLDOMNode
    For Each Node In XMl.selectNodes("PlanInfo/Zone").Item(0).childNodes
        If Node.nodeName Like "Point*" Then
            List1.AddItem "lat. " & Node.childNodes(0).Text & "  - " & "lon. " & Node.childNodes(1).Text
        End If
    Next Node
End Sub
0
Nightcourrier Messages postés 118 Date d'inscription dimanche 12 octobre 2003 Statut Membre Dernière intervention 28 mars 2008
14 juin 2004 à 23:11
bonjour Dragon,
encore moi ....

J'aimerais imprimer mon XMl a partir de vb 6 ... as tu une ider ..

Nightcourrier :)
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
14 juin 2004 à 23:23
tu peux toujours passer par un WebBrowser.....
0
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 6
15 juin 2004 à 00:13
suis d'accord avec Renfield, sinon utiliser un treeview
0
Nightcourrier Messages postés 118 Date d'inscription dimanche 12 octobre 2003 Statut Membre Dernière intervention 28 mars 2008
15 juin 2004 à 01:16
Merci à vous 2 !!!! mes problème sont résolu !! :)

Nightcourrier :)
0
Nightcourrier Messages postés 118 Date d'inscription dimanche 12 octobre 2003 Statut Membre Dernière intervention 28 mars 2008
15 juin 2004 à 01:27
J'ai encore p-e un petit problème en fin compte hehe

Dragon j'ai utiliser ton code ...

Dim XMl As New DOMDocument30
XMl.Load "C:\a.xml"

Dim Node As IXMLDOMNode
For Each Node In XMl.selectNodes("PlanInfo/Zone").Item(0).childNodes
If Node.nodeName Like "Point*" Then
List1.AddItem "lat. " & Node.childNodes(0).Text & " - " & "lon. " & Node.childNodes(1).Text
End If
Next Node

je veux refaire un

For Each Node In XMl.selectNodes("PlanInfo/AutreChose").Item(0).childNodes
If Node.nodeName Like "AutreChose*" Then
List1.AddItem "lat. " & Node.childNodes(0).Text & " - " & "lon. " & Node.childNodes(1).Text
End If
Next Node

Il me dit tjrs For Control Already in use

J'ai fais set node = nothing ...

cela ne fonctionne .. si tu as une ID fais moi signe merci !

Nightcourrier :)
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
15 juin 2004 à 12:43
Donnes nous un extrait de ton fichier XML et de ce que tu souhaite extraire....

(au passage, ce bout de code est pas de Dragon ;) )
0
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 6
15 juin 2004 à 13:21
ouin, c,est ce que je me disais aussi lol selectNodes("PlanInfo/AutreChose"). c'est pas de moi lol
0
Nightcourrier Messages postés 118 Date d'inscription dimanche 12 octobre 2003 Statut Membre Dernière intervention 28 mars 2008
15 juin 2004 à 20:54
Oupp.. Scuser...

Bon toute marche !!! :)

Je me demande une dernièrre chose ( j'espère )

Il t'il possible de cacher un fils

Ex:

+
+

J'aimerais cela exemple cacher Point2 mais pouvoir aller chercher les informations que Point2 contient.

Je ne sais pas ci cela est possible.

Merci les gars de votre aide ! :)

Nightcourrier :)
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
15 juin 2004 à 21:31
"cacher" un fils ?? je vois pas ce que tu veux dire....

tu l'a affiché dans un WebBrowser,et tu souhaite en masquer une partie ?
0
Nightcourrier Messages postés 118 Date d'inscription dimanche 12 octobre 2003 Statut Membre Dernière intervention 28 mars 2008
15 juin 2004 à 21:34
salut Renfield,

Oui Exactement, Je créer un fil qui contient des informations qui sont utile pour mon programme et non pour l'utilisateur j'aiemrais cacher un fils

Mon fichier XML est comme une base de données. Mon programme load des informations d'un fichier XML...

Merci de m'aider ...

Nightcourrier :)
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
15 juin 2004 à 22:40
tu peux toujours afficher une version legerement differente de ton fichier
0
Nightcourrier Messages postés 118 Date d'inscription dimanche 12 octobre 2003 Statut Membre Dernière intervention 28 mars 2008
15 juin 2004 à 23:09
Ouin ... ce n'est pas ce que j'aurais aimé .. entk cela n'est pas grave ..

Je vais continuer a chercher une autre méthode ...

Merci

Nightcourrier :)
0
Rejoignez-nous