bubbathemaster
Messages postés339Date d'inscriptiondimanche 26 janvier 2003StatutMembreDernière intervention25 mars 2009
-
2 mai 2006 à 17:14
bubbathemaster
Messages postés339Date d'inscriptiondimanche 26 janvier 2003StatutMembreDernière intervention25 mars 2009
-
5 mai 2006 à 17:39
Comme je viens de me mettre à .NET, je me suis dit que j'allais laisser tomber les vieux fichiers ini pour la configuration au profit du XML. 3 points m'ont poussé à me diriger vers le XML :
- Le XML, c'est in
- Le XML, c'est branché
- Le XML, c'est la classe
Partant avec tous ces arguments -vous conviendrez- fortemment convaincants, mon application .NET doit donc utiliser un xml en guise de fichier de configuration.
Mais voilà, avec mes vieux fichiers INI, Pour écrire une valeur, il suffisait de faire f(header,variable,valeur,fichier) avec la fonction adéquate, et pour lire une valeur f(header,variable,fichier). Je pensais donc que Microsoft qui a beaucoup fait pour promouvoir ce format nous avait concocté des fonctions du même genre.
Que neni ! C'est quoi ce bordel ? Y'a 35610 façons d'ouvrir un fichier XML et 28418451 façons d'écrire dedans...
Tout ça pour en venir à ma question, si je veux utiliser le XML pour fichier de configuration, je fais comment pour récupérer la valeur d'une rubrique précise ?
(pour l'instant j'ai trouvé la méthode :
XmlDocument config = new XmlDocument();
config.Load(Application.StartupPath + "\\configuration.xml");
XmlNodeList elemList = config.GetElementsByTagName("ma_rubrique");
variable = elemList[0].InnerText;
mais ça à pas l'air très propre)
Et surtout, comment je fais pour écrire une valeur précise dans ce µ%$ de XML sans écraser tout le fichier ?
Merci
A voir également:
Une erreur s'est produite lors du chargement des informations. (either no configuration (ovhconfig or runtime), or the current configuration is not valid (please, double check the module's requirement) (as a reminder, the global configuration is used for module). (configuration found: php 5.4))
sebseb42
Messages postés495Date d'inscriptiondimanche 6 juillet 2003StatutMembreDernière intervention 9 novembre 20071 5 mai 2006 à 09:52
Oula oula, biensure que non... tu recupère un XmlNode, donc il faut faire comme ca :
XmlAttribute attr = section.Attributes["propriete1"];
if (attr != null)
val = attr.Value;
attr = section.Attributes["propriete2"];
if (attr != null)
val = attr.Value;
tu peux aussi faire :
foreach (XmlAttribute current_attr in section.Attributes)
// traitement de l'attribut current_attr
Si tu utilise un IDE qui te permet de voir le contenu d'un objet lorsque tu tappe . (point)
(VisualStudio, Eclipse, SharpDevelop, etc...) dans ce cas je te conseil de bien regarde le contenu de la class XmlNode, elle recèlle plusieurs trucs très interessant :)
ds.ReadXml(xnr); // à ce stade votre DataSet est rempli et ainsi vous pouvez effectuer vos modification
// soit ajouter ou modifier ou supprimer
// Exemple
ds.Tables["Numero du DataTable"].Rows["Numéro de ligne"][
"Nom Colonne"]= "Visual Studio 2005";
//Numéro de ligne signifie le numero de la ligne dans la table
// il faut savoire que le DataSet contient des DataTable
String
Chaine= ds.Tables["Numero du DataTable"].Rows["Numéro de ligne"][
"Nom Colonne"].ToString():
bubbathemaster
Messages postés339Date d'inscriptiondimanche 26 janvier 2003StatutMembreDernière intervention25 mars 20094 3 mai 2006 à 19:03
Ta fonction marche seb.
Par contre, doc.Load charge tout le fichier XML en mémoire non ? Là ca va parceque j'ai un ptit XML de configuration, mais pour les grosses applis, ca ne pose pas de problème?
Quant aux Datasets, je ne vais pas y toucher pour le moment, m'ai j'essayerai quand meme la deuxième solution proposée par curiosité ;o
Merci :>
Vous n’avez pas trouvé la réponse que vous recherchez ?
sebseb42
Messages postés495Date d'inscriptiondimanche 6 juillet 2003StatutMembreDernière intervention 9 novembre 20071 3 mai 2006 à 22:20
quand tu ouvre un fichier XML de plusieurs Mega avec Internet Explorer (pour le visualiser) il faut bien qu'il charge tout. Parfois c'est un peu lent si le fichier est vraiment massif, mais je ne vois pas en quoi ca pose un probleme :)
La seule façon que j'ai trouvé de récupérer les attributs ok et ko, c'est d'utiliser
XMLNode.OuterXml et de traiter toute la chaine de caractère "hello propriete1="ok" propriete2="ko"" à grands coups de splits et autres. Bref, c'est pas joli joli. Y'a t-il une autre méthode?
bubbathemaster
Messages postés339Date d'inscriptiondimanche 26 janvier 2003StatutMembreDernière intervention25 mars 20094 5 mai 2006 à 17:39
Ah c'est donc planqué dans Attributes ^^
Merci :>
Effectivement j'utilise un IDE et j'avais tenté de trouvé moi meme ou se trouvaient ces données avec le debugger de Visual Studio. Et le seul endroit où j'ai trouvé qu'on pouvait récupérer les données, c'était dans OuterXml. Je devais pas être bien reveillé/