Creation d'un fichier xml en .net

Soyez le premier à donner votre avis sur cette source.

Snippet vu 20 142 fois - Téléchargée 28 fois

Contenu du snippet

J'ai pas trouvé sur le site comment faire pour simplement creer un fichier XML lorsque celui ci n'existe pas.
Ce code vous explique une de facons de faire

Source / Exemple :


Dim Doc As New XmlDocument

        Dim mElement As XmlElement
        mElement = Doc.CreateElement("Root")

        Doc.AppendChild(mElement)

        'Create an XML declaration. 
        Dim xmldecl As XmlDeclaration
        xmldecl = Doc.CreateXmlDeclaration("1.0", Nothing, Nothing)
        Doc.InsertBefore(xmldecl, Doc.DocumentElement)

        Doc.Save("c:\temp.xml")

'Temp.xml sera creer et contiendra juste le minimum pour ensuite ecrire ce que l'on veut dedans

'<?xml version="1.0"?>
'<Root/>

'pour le reste il vous suffit de faire 

Dim mElement as XmlElement 
mElement = doc.CreateElement("Enfant")
mElement.InnerText = "Noeud Enfant"

Doc.DocumentElement.AppendChild(mElement)
Doc.Save("c:\temp.xml")

Conclusion :


J'attends vos commentaires

A voir également

Ajouter un commentaire

Commentaires

Messages postés
140
Date d'inscription
jeudi 24 août 2006
Statut
Membre
Dernière intervention
28 août 2014

Bonjours , il ya t-il un moyen d'écrire plusieur lignes dans un XML? si oui comment? Merci
Messages postés
6
Date d'inscription
lundi 17 mai 2010
Statut
Membre
Dernière intervention
15 juillet 2010

J'ai fais un copier coller de ton code, moi je developpe en asp.net associé au vb.net et sa ne passe pas, j'ai cette erreur:

Type 'XmlElement' non défini.
Tu peux me l'expliquer (meme sur le forum)
Messages postés
1
Date d'inscription
dimanche 8 septembre 2002
Statut
Membre
Dernière intervention
10 septembre 2007

Bonjour,
C'est bien de faire des codes très simples pour les débutants mais il faut préciser les versions utilisées et enlever les pièges évidents :)
Voilà une version corrigée de ton code qui va marcher tout de suite en .net version 2 (la seule à utiliser en production)
Il faut aussi ne jamais écrire n'importe où sur le disque, les nouvelles plateformes (serveur 2003, Vista) le refusent enfin par défaut (ce n'est pas trop tôt).
Cordialement
Damien

Dim Doc As New System.Xml.XmlDocument
Dim mElement As System.Xml.XmlElement
mElement = Doc.CreateElement("Root")
Doc.AppendChild(mElement)

'Create an XML declaration.
Dim xmldecl As System.Xml.XmlDeclaration
xmldecl = Doc.CreateXmlDeclaration("1.0", Nothing, Nothing)
Doc.InsertBefore(xmldecl, Doc.DocumentElement)
Dim mFichier = My.Computer.FileSystem.SpecialDirectories.MyDocuments.ToString & "\temp.xml" ' on écrit dans un dossier autorisé !
Doc.Save(mFichier)

'Temp.xml sera créé et contiendra juste le minimum pour ensuite écrire ce que l'on veut dedans

'<?xml version="1.0"?>
'<Root/>

'pour le reste il vous suffit de faire

' Dim mElement As System.Xml.XmlElement déjà déclaré
mElement = Doc.CreateElement("Enfant")
mElement.InnerText = "Noeud Enfant"
Doc.DocumentElement.AppendChild(mElement)
Doc.Save(mFichier)
Messages postés
8
Date d'inscription
mardi 17 décembre 2002
Statut
Membre
Dernière intervention
3 juin 2006

Merci a tous les deux vos travaux sont super et repondent a mon besoin
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
23
--> Flo1978 : j'avais vu ta source, j'ai telechargé le zip, puis fait autre chose et j'ai du l'oublier :p
J'y suis retourné, et c'est vrai que ta source fais ce que je demande.

Le principe est totalement different, tu te sers d'un xmlTextWriter, qui est peut etre une meilleure solution que la mienne.

Voici pour ceux que ca interesse la structure de la source de Flo1978

Dim XMLobj As Xml.XmlTextWriter
Dim ue As New System.[Text].UnicodeEncoding
XMLobj = New Xml.XmlTextWriter("Sample.xml", ue)

XMLobj.Formatting = Xml.Formatting.Indented
XMLobj.Indentation = 3
XMLobj.WriteStartDocument()

XMLobj.WriteComment("XML crée par Bertaux Florian")
XMLobj.WriteComment("Sample XML/XSL")
XMLobj.WriteComment("http://www.EdenSoftware.fr.st")



XMLobj.WriteStartElement("XMLXSL")

Dim des As String = "Sample XML/XSL - (http://www.EdenSoftware.fr.st)"
Dim desc As String = "Crée par Bertaux Florian "
XMLobj.WriteStartElement("DESCRIPTION")
XMLobj.WriteElementString("Info", des)
XMLobj.WriteElementString("Author", desc)
XMLobj.WriteEndElement()

XMLobj.Close()

Merci pour la note :)
Afficher les 10 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.