Lire un fichier xml

[Résolu]
Signaler
Messages postés
105
Date d'inscription
lundi 13 décembre 2004
Statut
Membre
Dernière intervention
14 février 2013
-
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
-
bonjour, j'aimerais lire mon fichier xml afin de donner le text à mes differents composants en fonction de la langue du client.



j'ai donc un fichier xml du style :

<?xml version="1.0" encoding="utf-8" ?>

<Lang>

<Fr>

<label1>Menu1fr</label1>

<label2>Menu2fr</label2>

<label3>Menu3fr</label3>

</Fr>

<En>


<label1>Menu1en</label1>


<label2>Menu2en</label2>


<label3>Menu3en</label3>

</En>

</Lang>



comment lire et recuperer ces valeurs ?

merci par avance!

4 réponses

Messages postés
1642
Date d'inscription
samedi 6 novembre 2004
Statut
Modérateur
Dernière intervention
28 avril 2011
3
Salut,

Utilise la classe XmlDocument !
Voilà un exemple :

Dim doc As New XmlDocument()
doc.Load("c:\file.xml")

For Each node As XmlNode In doc.ChildNode("Lang").ChildNode("Fr").ChildNodes
Response.Write(node.Name & "=" node.InnerText & "
")
End For

Ce qui va te donner :
label1=Menu1fr
label2=Menu2fr
label3=Menu3fr
etc...

Tu peux aussi utiliser des requêtes XPath, mais là je suis pas un spécialiste

<hr size="2" width="100%">Nurgle (Antoine)
Messages postés
1642
Date d'inscription
samedi 6 novembre 2004
Statut
Modérateur
Dernière intervention
28 avril 2011
3
mouarf, j'ai oublié un "s" à la fin de ChildNodes à deux endroits, mais je penses que tu as compris le principe...

<hr size="2" width="100%">Nurgle (Antoine)
Messages postés
105
Date d'inscription
lundi 13 décembre 2004
Statut
Membre
Dernière intervention
14 février 2013
2
merci beaucoup c'est parfait ;)







bon code ;)
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
29
Bonjour,

si tu recherches seulement une clé parmis plusieurs milliers d'enregistrement la solution risque d'etre trés longue, et il faudra mieux utiliser du xpath pour plus de performance, voici la requete qui ira bien pour toi :)

tonnode = tmpnode.SelectSingleNode(String.Format("./{0}/{1}", langue, key))

avec tmpnode le noeud contenant les <lang>, langue un string contenant la langue ("Fr" ou "En" dans ton cas) et key le nom de ton champ. tonnode correspondra alors au noeud de ta valeur :)


<HR>
Cyril - MVS - MCP ASP&