Noeud existe XML

horzy Messages postés 30 Date d'inscription lundi 19 mars 2007 Statut Membre Dernière intervention 16 juillet 2007 - 6 juil. 2007 à 10:59
cs_christoni Messages postés 140 Date d'inscription mardi 25 novembre 2003 Statut Membre Dernière intervention 1 novembre 2010 - 6 juil. 2007 à 20:52
Bonjour,

Je manipule des fichiers xml et j'aimerais savoir comment réaliser une action seulement si tel noeud existe dans mon fichier xml.

exemple :
<racine>
   <fil type="1">val1</fil>
    <fil type="2">val2</fil>
    <fil type="3">val3</fil>
    <fil type="4">val4</fil>
</racine>

si le noeud fil type="1" existe alors
   action 1
   action 2
fin si

savez vous comment traduire ca : noeud fil type="1" existe
Merciiii

2 réponses

cs_mik67 Messages postés 39 Date d'inscription mardi 12 octobre 2004 Statut Membre Dernière intervention 13 juillet 2007
6 juil. 2007 à 12:13
Pour récupérer les valeurs de tous les attributs des noeuds "fil" tu dois faire :

Dim m_xmld As XmlDocument
Dim m_node as XmlNode
Dim m_nodelist As XmlNodeList

m_xmld.Load("chemin de ton fichier xml")
m_nodelist = m_xmld.SelectNodes("/racine/fil")

For Each m_node In m_nodelist
      Dim valeur = m_node.Attributes.GetNamedItem("type").Value
Next

Je sais pas si c'est susceptible de t'aider mais bon ... :)
0
cs_christoni Messages postés 140 Date d'inscription mardi 25 novembre 2003 Statut Membre Dernière intervention 1 novembre 2010 7
6 juil. 2007 à 20:52
   

Bonsoir,

Ci-dessous, un exemple..

C’est tiré de : http://www.zdnet.fr/builder/architecture/conception_integration_si/0,39021041,2136916-1,00.htm

<!--[if !supportLists]-->1)      <!--[endif]-->ouvre
une nouvelle application Windows

<!--[if !supportLists]-->2)      <!--[endif]-->place
un fichier « Document.xml » sous bin/debug comprenant ta source :

 

<racine>

   <fil type="1">val1</fil>

    <fil type="2">val2</fil>

    <fil type="3">val3</fil>

    <fil type="4">val4</fil>

</racine>

    3)      <!--[endif]-->pose
un button sur ta form avec le code suivant :
   PrivateSub
Button1_Click(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles
Button1.Click

        '*** LA RECHERCHE.

        '*** xpathDoc
fournit une représentation en mémoire, en lecture seule
        '    et rapide d'un document XML à l'aide du
modèle de données XPath.
        '*** xmlNav
fournit un modèle de curseur pour la navigation dans
        '    les données XML de xpathDoc.
        '*** xmlNI
fournit un itérateur pour un ensemble de nœuds sélectionnés.
        '    (Documentation Microsoft Visual
Studio 2005)

        Dim xpathDoc As
Xml.XPath.XPathDocument
        Dim xmlNav As
Xml.XPath.XPathNavigator
        Dim xmlNI As
Xml.XPath.XPathNodeIterator

        Try
            xpathDoc
= New Xml.XPath.XPathDocument("Document.xml")
            xmlNav =
xpathDoc.CreateNavigator()

            '*** On
itère une recherche en naviguant dans le fichier XML .
            '    xmlINI fait une recherche en boucle dans le
fichier XML
            '    chargé en mémoire, avec comme objectif, ce
que xmlNav
            '    demande de rechercher.
            '    Ici, la recherche porte sur le ou les
"fil" ayant
            '    son index "type" égal à 1
            '    NB pour tester changer la valeur 1 ci
dessous par une autre.
            xmlNI = xmlNav.Select("/racine/fil[@type=1]")

            '    va au noeud suivant.
            While
(xmlNI.MoveNext)
               
MessageBox.Show(xmlNI.Current.Value)
                ExitSub
            EndWhile
           
MessageBox.Show("type 1 inexistant")

        Catch ex As
Xml.XPath.XPathException
            MessageBox.Show("XMLException: " + ex.Message)
        Catch ex As Exception
           
MessageBox.Show("Exception: "
+ ex.Message)
        EndTry

    EndSub

Bonne prog.
0
Rejoignez-nous