begin process at 2010 02 10 00:26:27
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C#

 > 

Système

 > 

Exécution

 > 

Ajouter une liste de noeud dans un XML


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Ajouter une liste de noeud dans un XML

jeudi 21 février 2008 à 09:16:59 | Ajouter une liste de noeud dans un XML

virgul

Membre Club
Bonjour,

Voila j'aimerais bien savoir quelle est d'après vous le meilleur moyen d'ajouter une liste de noeud dans un noeud contenu dans un autre XmlDocument?
Mon problème est que je traite des xml de 5mo alors chaque miliseconde compte...

Moi ma variante c'est ca :

XmlNodeList Personnes = DocAV.selectSingleNode("/Personnes/Person");

XmlDocument PersListe = newXmlDocument();
PersListe.LoadXml(
"<PersListe/>");

foreach (XmlNode Pers in Personnes)
{
PersListe.DocumentElement.AppendChild(Pers);
}

Es-ce optimal ?

Merci
jeudi 21 février 2008 à 13:44:30 | Re : Ajouter une liste de noeud dans un XML

billou_13

Membre Club
Salut,

Ton programme marchera très bien comme cela.

Mais si, comme tu le souhaites, chaque milliseconde compte, je te conseilles de faire cela avec les classe XmlTextReader et XmlTextWriter.
Le code sera moins évident à implémenter mais le résultats se fera sentir. Par expérience, je suis passé de l'ordre de 20min (qd l'ordi plantait pas^^) pour le traitement de fichier XML de + de 300Mo (je vous dis pas pour ouvrir avec notepad) à moins de 3min.

Pour ce faire, voici comment je verrai les choses :
XPathNavigator xp = xmlDoc.CreateNavigator();
xp.SelectSingleNode("//Personnes//Person");
XmlTextWriter xw = new XmlTextWriter("toto.xml", Encoding.UTF8);
xw.WriteStartElement("");
xw.WriteNode(xp, false);
xw.WriteEndElement();//End PersListe node

Je t'avoue que je viens de découvrir le XPathNavigator (je ne travaillais qu'avec XmlTextReader et Writer). Mais cette solution semble t'être plus adaptée et devrait s'en approcher.


Billou_13
Bask En Force

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------
jeudi 21 février 2008 à 13:47:36 | Re : Ajouter une liste de noeud dans un XML

billou_13

Membre Club
Oups,

J'ai omis de compléter quelques bouts de code dans mon dernier post:
- Le XPathNavigator se trouve dans le namespace System.Xml.XPath; (faire le using) - remplace le xmlDoc par ton objet DocAV
- xw.WriteStartElement(""); doit être remplacé par xw.WriteStartElement("PersListe");


Billou_13
Bask En Force

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------
jeudi 21 février 2008 à 13:49:09 | Re : Ajouter une liste de noeud dans un XML

billou_13

Membre Club
Pas évident la mise en forme des messages avec Opéra (faut mettre des br dans tous les sens)
Par conséquent, désolé pour l'oubli du suat de ligne avec "- remplace le xmlDoc"


Billou_13
Bask En Force

--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------
jeudi 21 février 2008 à 15:18:34 | Re : Ajouter une liste de noeud dans un XML

virgul

Membre Club

Bonjour,

Merci beaucoup pour votre réponse je vais analyser et voir ce que je peux tirer de votre idée.

 



Cette discussion est classée dans : liste, ajouter, xml, personnes, noeud


Répondre à ce message

Sujets en rapport avec ce message

obtenir les attributs d'un noeud d'un document xml [ par godefrw ] Bonjour, je cherche à obtenir la valeur d'un attribut d'un noeud d'un fichier Xml. j'ai charger mon fichier dans un XmlDocument. Avec un XmlReader c'e modifier noeud fichier xml [ par jesusonline ] Voila je suis coincé et j'ai pas le temps de faire de rechercher :( alors je fais appel à vou en esperant avoir une reponse :) Voici le problème j'ai ajouter, modifier un fichier xml [ par tmcuh ] bonjour, je débute un peu dans le xml et j'aurais aimé modifier des données présentes dans un clé (avec paramètres), rajouter des nouvelles clés, bref Ajouter Reference VS.NET 2003 [ par 0xYg3n3 ] Bonjour, j'aurais voulu savoir si il est possible d'ajouter des références dans la liste prévues a cet effet (Projet/Ajouter une Référence). En effet Suppression de noeud XML [ par emachede ] bonjour, je veux supprimer un noeud bien précis dans mon xml j'utilise la commande: objRoot.RemoveChild(monNoeud); avec objRoot = objXmlDoc.Document Xml + Detection + Problèmeee [ par emmanuel9 ] Bonjour, En faite j'ai un fichier xml et à un moment j'ai : (c'est un exemple pour simplifier je precise) jean paul</personne_pren Problème de gestion XML [ par SyDaze ] Bonjour, J'ai un problème que je n'arrive vraiment pas à m'expliquer:J'ai memorisé un fichier XML dans un objet XmlDocument, je voudrai effectuer une Création d'un noeud Xml à partir de rien [ par cfz ] Bonjours, je travail sur un document Xml sur lequel j'ai besoin d'ajouter de nouveaux noeuds. Je voulais faire XmlNodeLoc.AppendChild(newNode)mais le supprimer un noeud XML [ par user_two ] slt! j'ai pti problem à la suppression d'un noeud je veux supprimer le noeud lorsque sa valeur est null voici par exemple     zazaz     1 Insertion d'un noeud dans un fichier XML [ par lePouns ] Bonjour à tous,Voici mon problème. J'ai un fichier xml comme ceci :           <user name="Gilles" best_score="


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,827 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales