cs_megamario
Messages postés145Date d'inscriptionlundi 15 juin 2009StatutMembreDernière intervention14 février 2013
-
21 janv. 2010 à 22:05
billou_13
Messages postés860Date d'inscriptionjeudi 4 mars 2004StatutMembreDernière intervention19 août 2014
-
27 janv. 2010 à 09:36
Bonjour à tous,
Après mes problèmes avec mes collections, pour justement stocker mes données XML.
je m'attaque a l'ajout de données.
Il faut que :
- Je puisse ajouter une branche complètement nouvelle.
- Je puisse modifier une valeur, ou un attribut.
Pour la navigation dans mon XML j'ai choisi Xpath.
J'ai parfaitement compris pour la lecture mais je sache pour l'écriture car j'ai suivit un excellent tuto et je bloque alors que lorsque je debug, apparement je serait dans le bon niveau.
Voici un bout de mon XML:
<?xml version= "1.0" encoding="utf-8"?>
</mesures>
<etat>
<Nom>Alarm LVD Open Util</Nom>
<Obj>Code3</Obj>
3
<Format>1</Format>
0
</etat>
</type>
<type>
etc .. même principe plusieurs fois
</type>
Voila un résumer très condensé
Voila mon bout de code en C#
public bool AjouterSupervision(string FichierXML, string Module, string log)
{
DocXML = new XPathDocument(FichierXML);
Navig = DocXML.CreateNavigator();
ExpXPath = "//config";
MaNavi = Navig.Select(Navig.Compile(ExpXPath));
MaNavi.MoveNext();
MaNavi.Current.InsertElementAfter("", "type", "", ""); // il plante ici alors que MaNavi est bien en 1.
MaNavi.Current.CreateAttribute("", "version", "", Module);
MaNavi.Current.CreateAttribute("", "connexion", "", log);
MaNavi.Current.AppendChildElement("", "mesures", "", "");
MaNavi.Current.AppendChildElement("", "etat", "", "");
//return true;
}
J'ai reproduit le même principe qu'un tuto trouvé et la sa plante. Si vous avez une idée. Je vais plancher la dessus au lycée demain après avais finalisé mon UML.
Merci
Technicien en électricité Industriel (39 ans), en cours de reconversion BTS IRIS 2eme Année.
Au lycée pendant l'année scolaire, et en stage pendant les vacances scolaire.
billou_13
Messages postés860Date d'inscriptionjeudi 4 mars 2004StatutMembreDernière intervention19 août 201429 27 janv. 2010 à 09:36
Salut,
Je n'ai pas beaucoup travaillé avec XPathDocument, donc je ne pourrai pas t'aider du côté de ton problème.
Par contre, je peux te dire que pour ma part, j'utilise la classe XmlDocument.
Ce qui te donne un code du genre:
using System.Xml;
XmlDocument doc = new XmlDocument();
doc.Load("ton fichier");//ou doc.LoadXml("xml");
XmlNode node = doc.SelectSingleNode("XPATH");
// pour insérer un noeud
XmlNode newNode = doc.CreateNode();
//Remplissage new node
node.AppendChild(newNode);
Je trouve cette classe très pratique à partir du moment où ton fichier n'est pas volumineux.
--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------