begin process at 2008 08 08 21:37:56
1 223 607 membres
365 nouveaux aujourd'hui
14 230 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Xml ajouter un noeud ? [ Base de données / XML ] (ansizak)

Xml ajouter un noeud ? le 06/03/2008 02:17:08

ansizak
Bonjour, je travaille sur un programme qui charge le contenu d'un fichier xml dans une datagrid ("en manuel"; sans passer par dataset ou datatable)

Je souhaiterais pouvoir l'éditer, je parviens à modifier le fichier xml en modifiant les valeurs dans la datagrid, mais le problème survient lorsque je doit ajouter des noeuds.
En effet je voudrait que mon programme considere chaque nouvelle ligne créee comme un nouveau noeud (dans le nom reste le même que les noeuds correspondants aux lignes précédentes) et surtout chaque cellule de la ligne comme un attribut dont la valeur correspond à celle de la cellule et le nom celui du header de la colonne en cours...

je m'arrache les cheveux et n'obtiens aucun résultat...

for (int i=0;i<dataGridshow.Rows.Count;i++)
                        {
                            if (i > noeudfils.ChildNodes.Count)
                            {
                                XmlNode newnod = configfile.CreateNode(nodtyp,noeudfils.ChildNodes[i - 1].Name,uri);
                                noeudfils.AppendChild(newnod);
                            }
                                                           

                            for (int k = 0; k < dataGridshow.Columns.Count; k++)
                            {
                                if (k>noeudfils.ChildNodes[i].Attributes.Count)
                                {
                                XmlAttribute newatt = configfile.CreateAttribute(dataGridshow.Columns[k].Name);
                                noeudfils.ChildNodes[i].Attributes.Append(newatt);
                                newatt.Value = dataGridshow.Rows[i].Cells[k].Value.ToString();
                                }
                                if (noeudfils.ChildNodes[i].Attributes[k].Value != dataGridshow.Rows[i].Cells[k].Value.ToString())
                                {
                                    noeudfils.ChildNodes[i].Attributes[k].Value = dataGridshow.Rows[i].Cells[k].Value.ToString();
                                }
                            }
                        }

C'est moche, j'en convient, et ça ne fonctionne absolument pas... ayez pitié de moi s'il vous plait :)

En vous remerciant de votre bienveillance,

Cordialement,
Anz.

Re : Xml ajouter un noeud ? le 11/03/2008 22:57:42

ansizak
Je vois qu'il y a foule au portillon :) (normal vu le bordel dans mon code :p)

Sinon j'ai fini par trouver la solution à mon pb, au cas où ça en interesserait certains: pour créer le noeud il fallait utiliser la méthode

XmlElement newelm = myfile.createdocumentElement(elementname);
parentnode.appendchild(newelm);

Pour les attributs la méthode était correcte.

Tout simplement... voilou,

Cordialement,

Anz.


Classé sous : xml, childnodes, attributes, value, noeudfils

Participer à cet échange

Pub



Appels d'offres

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS