cs_EBArtSoft
Messages postés4525Date d'inscriptiondimanche 29 septembre 2002StatutModérateurDernière intervention22 avril 2019
-
24 juin 2004 à 07:53
rsx602
Messages postés140Date d'inscriptionjeudi 24 août 2006StatutMembreDernière intervention28 août 2014
-
17 mars 2011 à 03:15
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
rsx602
Messages postés140Date d'inscriptionjeudi 24 août 2006StatutMembreDernière intervention28 août 2014 17 mars 2011 à 03:15
Bonjours , il ya t-il un moyen d'écrire plusieur lignes dans un XML? si oui comment? Merci
CeluiQuiVComprendre
Messages postés6Date d'inscriptionlundi 17 mai 2010StatutMembreDernière intervention15 juillet 2010 15 juil. 2010 à 16:45
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)
cs_damien34
Messages postés1Date d'inscriptiondimanche 8 septembre 2002StatutMembreDernière intervention10 septembre 2007 10 sept. 2007 à 09:18
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)
cs_Guillaume1er
Messages postés8Date d'inscriptionmardi 17 décembre 2002StatutMembreDernière intervention 3 juin 2006 8 sept. 2006 à 19:19
Merci a tous les deux vos travaux sont super et repondent a mon besoin
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 25 juin 2004 à 10:59
--> 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.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 :)
FLO1978
Messages postés18Date d'inscriptiondimanche 26 octobre 2003StatutMembreDernière intervention 1 août 2006 25 juin 2004 à 09:01
Bonjour,
Pour repondre a ta question :
"J'ai pas trouvé sur le site comment faire pour simplement creer un fichier XML lorsque celui ci n'existe pas."
J'ai posté une source similaire a cette adresse effectuant les operations suivantes :
1 - Ecrire un fichier XML
2 - Ecrire un fichier XML et l'afficher dans un feuille de style XSL
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 24 juin 2004 à 10:42
Merci à vous pour vos commentaires.
C'est vrai que pour l'exemple, il y aurait beaucoup plus simple, mais comme le dit kehops, un fichier xml peut rapidement devenir complexe, il vaut donc mieux utiliser les objets fait pour :)
cs_Crazyht
Messages postés1522Date d'inscriptionmardi 18 décembre 2001StatutMembreDernière intervention21 août 20108 24 juin 2004 à 10:21
EBArtSoft je suis pas d'accord du tout, la version ecriture àen mode barbare dans un fichier convient bien si tu as une structure assez simple. De plus le nombre de modifications en cas du renommage d'un noeud son deplacement dans les niveaux de la stucture te rappel vite que les objects sont là pour simplifier la vie.
Donc autant il est vrai que pour faire les 2 noeuds de l'exemple, il est plus simple d'ecrire le tout dans un fichier 'texte', autant quand tu as de grosse structure cette solution reste un calvaire.
@+
P.S. : De plus la soucre etant pour .NET meme l'ecriture d'un fichier est uune instanciation d'objet.
cs_kehops
Messages postés25Date d'inscriptionmercredi 26 mars 2003StatutMembreDernière intervention20 mars 2007 24 juin 2004 à 10:19
Aujourd'hui il existe des objets spécifiques et adapté au fichier XML, pourquoi ne pas les utiliser?
La solution du fichier texte c'est une solution bricolage et sa ne tiendra jamais la route sur de gros projet avec des fichiers XML de plusieurs centaine de ligne (je sais de quoi je parle).
D'autant plus que les objets XML permettent de faire des recherches ultra rapide dans un document XML ou de se placer instantanément sur un Noeud prédéfinis par exemple.
En conclusion je dis bravo jesusonline pour ta source. Les fichiers textes c'est du passé et il faut évoluer.
cs_EBArtSoft
Messages postés4525Date d'inscriptiondimanche 29 septembre 2002StatutModérateurDernière intervention22 avril 20199 24 juin 2004 à 07:53
Oui ou alors tu ouvre un fichier en mode texte ou binaire et tu ecris directement dedans :
open "c:\temp.tmp" for oupt as 1
print 1,"<root><enfant>nouvel enfant</enfant></root>"
close 1
On a souvent l'impression de mieu faire en utilisant des objets tout fait, c'est pas forcement le cas. Un parseur s'utilise pour lla lecture mais pour l'ecriture on peut generalement s'en passer.
17 mars 2011 à 03:15
15 juil. 2010 à 16:45
Type 'XmlElement' non défini.
Tu peux me l'expliquer (meme sur le forum)
10 sept. 2007 à 09:18
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)
8 sept. 2006 à 19:19
25 juin 2004 à 10:59
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 :)
25 juin 2004 à 09:01
Pour repondre a ta question :
"J'ai pas trouvé sur le site comment faire pour simplement creer un fichier XML lorsque celui ci n'existe pas."
J'ai posté une source similaire a cette adresse effectuant les operations suivantes :
1 - Ecrire un fichier XML
2 - Ecrire un fichier XML et l'afficher dans un feuille de style XSL
http://www.vbfrance.com/code.aspx?ID=23489
____________________________________________________
Concernant ton code, je lui assigne la note de 9/10
Cordialement
FLO1978
24 juin 2004 à 10:42
C'est vrai que pour l'exemple, il y aurait beaucoup plus simple, mais comme le dit kehops, un fichier xml peut rapidement devenir complexe, il vaut donc mieux utiliser les objets fait pour :)
24 juin 2004 à 10:21
Donc autant il est vrai que pour faire les 2 noeuds de l'exemple, il est plus simple d'ecrire le tout dans un fichier 'texte', autant quand tu as de grosse structure cette solution reste un calvaire.
@+
P.S. : De plus la soucre etant pour .NET meme l'ecriture d'un fichier est uune instanciation d'objet.
24 juin 2004 à 10:19
La solution du fichier texte c'est une solution bricolage et sa ne tiendra jamais la route sur de gros projet avec des fichiers XML de plusieurs centaine de ligne (je sais de quoi je parle).
D'autant plus que les objets XML permettent de faire des recherches ultra rapide dans un document XML ou de se placer instantanément sur un Noeud prédéfinis par exemple.
En conclusion je dis bravo jesusonline pour ta source. Les fichiers textes c'est du passé et il faut évoluer.
24 juin 2004 à 07:53
open "c:\temp.tmp" for oupt as 1
print 1,"<root><enfant>nouvel enfant</enfant></root>"
close 1
On a souvent l'impression de mieu faire en utilisant des objets tout fait, c'est pas forcement le cas. Un parseur s'utilise pour lla lecture mais pour l'ecriture on peut generalement s'en passer.
@+