XML et vb 2005

Résolu
cs_breton51 Messages postés 78 Date d'inscription jeudi 21 avril 2005 Statut Membre Dernière intervention 15 novembre 2018 - 15 sept. 2006 à 15:03
cs_breton51 Messages postés 78 Date d'inscription jeudi 21 avril 2005 Statut Membre Dernière intervention 15 novembre 2018 - 19 sept. 2006 à 14:33
bonjour


savez vous si il existe un moyen simple pour lir ou ecrir une valeur dans un fichier XML

cela fait un moment que je cherche avec "System.XML" mais voila
j'arrive juste a afficher le contenu de mon fichier XML, et apret je
n'arrive pas a parcourrir le fichier


voila ce que j'ai fait


Public XmlDoc As Xml.XmlDocument

Public XNav As Xml.XPath.XPathNavigato


XmlDoc = New Xml.XmlDocument

XmlDoc.Load( "c:\Copie de enregistrement_local.xml")

XNav = XmlDoc.CreateNavigator

RichTextBox1.Text = XNav.OuterXml


exemple d'un XML



     

          
Realtek HD Audio
input

           <duration type="duration">04:00:00.000</duration>

      



les commande que j'aimerai faire

commande pour lir la valeur de "duration"

ma_valeur = lit_XML("inputs,input" , "duration")

commande pour changer la valeur de "duration"

change_XML("inputs,input,duration" , "02:30:00:00")

2 réponses

cs_breton51 Messages postés 78 Date d'inscription jeudi 21 avril 2005 Statut Membre Dernière intervention 15 novembre 2018
19 sept. 2006 à 14:33
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''


' utilisation des fonctions de ce module '


' '


' 1°) lectureXML '


' dim valeur as string '


' valeur = lectureXML("chemin_du_fichier" _ '


' ,"chemin_de_la_valeur" _ '


' ,"valeur_a_recherché" _ '


' ,"type_du_chemin_de_la_valeur" ) optionnel '


' '


' 2°) EcritureXML '


' dim valeur as string '


' ecritureXML("chemin_du_fichier" _ '


' ,"chemin_de_la_valeur" _ '


' ,"noeud_de_la_valeur_a_modifier" _ '


' ,"valeur_à_modifier _ '


' ,"type_du_chemin_de_la_valeur" ) optionnel '


'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''


 


 


 


 




Imports



System.Xml


Module



XML


Private
root

As
XmlNode


Public



Function
lectureXML(

ByVal
chemin_fichier

As



String
,

ByVal
chemin_recherche

As



String
,

ByVal
valeur

As



String
,

Optional



ByVal
type

As



String
=

""
)

As



String






'declaration des varriables






Dim
parent()

As



String






Dim
i

As



Integer



'exploration du tableau






Dim
temp

As



String



'varriable contenant la valeur a recup






Dim
position

As



Integer



'position d'un eventuel retour cahrio (vbcr)






Dim
xmlTemp

As
XmlNode

'variable pour parcourrir le fichier XML






'initialisation du retour de la fonction

lectureXML =




""






'ouvre le fichier et copy les info dans root






Dim
XMLStruct

As



New
XmlDocumentXMLStruct.Load(chemin_fichier)


'met dans root l'integraliter du fichier xml

root = XMLStruct.DocumentElement


 







'decoupe le chemin dans un tableau

parent = Split(chemin_recherche,




","
)


'initialise xmltemp sur le premier noeud contenu dans chemin recherche

xmlTemp = root.Item(parent(0))







'boucle pour allez a la bonne valleur






For
i = 1

To
UBound(parent)xmlTemp = xmlTemp.Item(parent(i))


Next
i


'verifi que le type est corecte






While
type <> xmlTemp.Attributes(0).Value.ToString

And
type <>

""

xmlTemp = xmlTemp.NextSibling







End



While






'met dans temp la valeur rechercher

temp = xmlTemp.Item(valeur).InnerText







'recherche un eventuel retour a la ligne

position = InStr(temp, vbCr)







If
position <> 0

Then






'si retour a la ligne recup ce qui se trouve avant le retour a la ligne

lectureXML = (Mid(temp, 1, position - 1))







Else






'sinon retourne les données

lectureXML = (temp)







End



If






End



Function






Public



Function
ecritureXML(

ByVal
chemin_fichier

As



String
_,


ByVal
chemin_de_la_valeur

As



String
_,


ByVal
noeud_de_la_valeur_a_modifier

As



String
_,


ByVal
valeur_à_modifier

As



String
_,


Optional



ByVal
type_du_chemin_de_la_valeur

As



String
=

""
)

As



Boolean 

 








Dim
XMLStruct

As



New
XmlDocumentXMLStruct.Load(chemin_fichier)


'met dans root l'integraliter du fichier xml

root = XMLStruct.DocumentElement


 


 







'declaration des varriables






Dim
parent()

As



String






Dim
i

As



Integer



'exploration du tableau






Dim
xmlTemp

As
XmlNode

'variable pour parcourrir le fichier XML






'initialisation du retour de la fonction

ecritureXML =




False 








'decoupe le chemin dans un tableau

parent = Split(chemin_de_la_valeur,




","
)


'initialise xmltemp sur le premier noeud contenu dans chemin recherche

xmlTemp = root.Item(parent(0))







'boucle pour allez a la bonne valleur






For
i = 1

To
UBound(parent)xmlTemp = xmlTemp.Item(parent(i))


Next
i


'verifi que le type est corecte






While
type_du_chemin_de_la_valeur <> xmlTemp.Attributes(0).Value.ToString

And
type_du_chemin_de_la_valeur <>

""

xmlTemp = xmlTemp.NextSibling







End



While






'modifi la valeur dans xmltemp

xmlTemp.Item(noeud_de_la_valeur_a_modifier).InnerText = valeur_à_modifier







'sauve le fichier

XMLStruct.Save(chemin_fichier)







End



Function 

End





Module
3
Julien237 Messages postés 883 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 3 mars 2009 7
15 sept. 2006 à 15:44
De tête, je pense que tu peux simplement faire comme ceci :
(Ca vaut plus vraiment la peine faire une fonction, mais bon, à toi de voir...)

Dim element As Xml.XmlNode
element = xmldoc.SelectSingleNode("inputs/input/duration")
MsgBox(element.InnerText)

Julien.
0
Rejoignez-nous