Recherche XML .Net

cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 - 31 mai 2004 à 15:36
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 - 31 mai 2004 à 17:20
Salut

je susi en train de créer un module pour le XML extrêment facile de recherche

j'ai une fonction ouverture qui ouvre mon fichier xml

Public Function openXML(ByVal fichier As String)
Dim XMLStruct As New XmlDocument

XMLStruct.Load(fichier)
root = XMLStruct.DocumentElement

End Function


ensuite j'ai une fonction qui permet de retournée une valeur situer à la racine de fichier XML

Public Function lectureXML(ByVal valeur As String) As String
        Return root.Item(valeur).InnerText
    End Function


mais je voudrasi en ajouter une dernière qui faire un recherche à travers les différents enfants. Je reçoi un tableau de longueur inconnu, qui est le lien vers notre valeur voulu, et la valeur que l'on veut. Il reste plus qu'à boucler jusqu'à ce que le tableau soit passé au complet puis aller chercher la valeur.

Voici ce que j'ai faite

Public Function lectureXML(ByVal parent() As String, ByVal valeur As String) As String
        Dim i As Integer
        Dim xmlTemp As XmlNode
        For i = 0 To UBound(parent) - 1
            xmlTemp = xmlTemp.Item(parent(i))
        Next
        Return xmltemp.Item(valeur).InnerText
    End Function


donc je crée un élément XMLnode et je lui fait faire une mise à jour après chaque boucle, pour avancer danc le fichier XML. Sauf que ça me sort une erreur, il veux pas me sortir la valeur que je désire ou plutot il reconnait pas le format. quelqu'un peut m'aider ???

2 réponses

cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 6
31 mai 2004 à 15:49
oups j'avais oublié dequoi, sauf que ça règle pas le problème

Public Function lectureXML(ByVal parent() As String, ByVal valeur As String) As String
        Dim i As Integer
        Dim xmlTemp As XmlElement
        xmlTemp = root.Item(parent(0))
        For i = 1 To UBound(parent) - 1
            xmlTemp = xmlTemp.Item(parent(i))
        Next i
        Return xmlTemp.Item(valeur).InnerText
    End Function


j'ai essayé ceci et ça fonctionne, donc le problème viens vraiment du Dim xmlTemp As XmlElement, puisque même si j'envoi un tableau de 1 item, donc il entre pas dans le For, ça marche pas

Public Function lecture(ByVal parent As String, ByVal valeur As String) As String
        Return root.Item(parent).Item(valeur).InnerText
    End Function
0
cs_dragon Messages postés 2336 Date d'inscription samedi 14 juillet 2001 Statut Membre Dernière intervention 5 mai 2009 6
31 mai 2004 à 17:20
bon j'ai un peu avancer, le problème viens du tableau ???

si je fais

Public Function lectureXML(ByRef parent() As String, ByVal valeur As String) As String
        Dim node As XmlNode
        Dim temp As String
        temp = "Jour"
        node = root.Item(temp)
        Return node.Item(valeur).InnerText
    End Function


ça marche

mais si je fais

Public Function lectureXML(ByRef parent() As String, ByVal valeur As String) As String
        Dim node As XmlNode
        Dim temp As String
        temp = parent(0)
        node = root.Item(temp)
        Return node.Item(valeur).InnerText
    End Function


ça plante ??? pourtant dasn les 2 cas, c'est la variable temp qui est envoyer qui est n'est pas un tableau, la seule différence, c,est que la valeru de temp est initialiser par un tableau ou par une variable. Je comprend vraiment pas l'erreur là :sad)
0
Rejoignez-nous