Discussion:
VB et XML saut de ligne
(trop ancien pour répondre)
JGP_NoMail
2007-01-17 14:51:00 UTC
Permalink
Bonjour,
Quand je test l'exemple ci-dessous, le résultat et dans un fichier sur
une seule ligne, comment avoir le résultat indenté (retour chariot et
tabulation) ?

JGP



Sub creerFichierXML2()
' source http://www.c2i.fr/code.asp?IDCode=21
Dim objDOM As DOMDocument, XnodeRoor As IXMLDOMElement, Xnode As
IXMLDOMElement
Set objDOM = New DOMDocument 'création de l'objet document
Set XNodeRoot = objDOM.createElement("Sites") 'création de l'objet
racine Sites
objDOM.appendChild XNodeRoot 'ajout du noeud racine au document

Set Xnode = objDOM.createElement("Site") 'création de l'objet noeud
Xnode.setAttribute "URL", "www.c2i.fr" 'ajout des attributs au noeud
Xnode.Text = "Le site de c2i" 'ajout du texte pour le noeud
XNodeRoot.appendChild Xnode 'ajout du noeud fils au noeud racine
'il suffit maintenant de faire la même chose avec le noeud suivant >
Set Xnode = objDOM.createElement("Site")
Xnode.setAttribute "URL", "www.microsoft.com/france"
Xnode.Text = "Le site de Microsoft France"
XNodeRoot.appendChild Xnode

objDOM.Save "c:\exemple.xml" 'sauvegarde du fichier
Set XNodeRoot = Nothing
Set Xnode = Nothing
Set objDOM = Nothing
End Sub
Paul Bacelar
2007-01-17 23:57:32 UTC
Permalink
Quelle version de MSXML est installée sur la machine ?
--
Paul Bacelar
MVP VC++
Post by JGP_NoMail
Bonjour,
Quand je test l'exemple ci-dessous, le résultat et dans un fichier sur
une seule ligne, comment avoir le résultat indenté (retour chariot et
tabulation) ?
JGP
Sub creerFichierXML2()
' source http://www.c2i.fr/code.asp?IDCode=21
Dim objDOM As DOMDocument, XnodeRoor As IXMLDOMElement, Xnode As
IXMLDOMElement
Set objDOM = New DOMDocument 'création de l'objet document
Set XNodeRoot = objDOM.createElement("Sites") 'création de l'objet
racine Sites
objDOM.appendChild XNodeRoot 'ajout du noeud racine au document
Set Xnode = objDOM.createElement("Site") 'création de l'objet noeud
Xnode.setAttribute "URL", "www.c2i.fr" 'ajout des attributs au noeud
Xnode.Text = "Le site de c2i" 'ajout du texte pour le noeud
XNodeRoot.appendChild Xnode 'ajout du noeud fils au noeud racine
'il suffit maintenant de faire la même chose avec le noeud suivant >
Set Xnode = objDOM.createElement("Site")
Xnode.setAttribute "URL", "www.microsoft.com/france"
Xnode.Text = "Le site de Microsoft France"
XNodeRoot.appendChild Xnode
objDOM.Save "c:\exemple.xml" 'sauvegarde du fichier
Set XNodeRoot = Nothing
Set Xnode = Nothing
Set objDOM = Nothing
End Sub
JGP_NoMail
2007-01-19 09:21:47 UTC
Permalink
Bonjour,
Post by Paul Bacelar
Quelle version de MSXML est installée sur la machine ?
J'ai utilisé comme référence : MSXML v4.0. D'autres version peuvent
résoudre le problème ?
--
JGP
Alain Guimberteau
2007-02-18 12:03:05 UTC
Permalink
Post by JGP_NoMail
Bonjour,
Quand je test l'exemple ci-dessous, le résultat et dans un fichier sur une
seule ligne, comment avoir le résultat indenté (retour chariot et tabulation)
?
JGP
Sub creerFichierXML2()
' source http://www.c2i.fr/code.asp?IDCode=21
Dim objDOM As DOMDocument, XnodeRoor As IXMLDOMElement, Xnode As
IXMLDOMElement
Set objDOM = New DOMDocument 'création de l'objet document
Set XNodeRoot = objDOM.createElement("Sites") 'création de l'objet
racine Sites
objDOM.appendChild XNodeRoot 'ajout du noeud racine au document
Set Xnode = objDOM.createElement("Site") 'création de l'objet noeud
Xnode.setAttribute "URL", "www.c2i.fr" 'ajout des attributs au noeud
Xnode.Text = "Le site de c2i" 'ajout du texte pour le noeud
XNodeRoot.appendChild Xnode 'ajout du noeud fils au noeud racine
'il suffit maintenant de faire la même chose avec le noeud suivant >
Set Xnode = objDOM.createElement("Site")
Xnode.setAttribute "URL", "www.microsoft.com/france"
Xnode.Text = "Le site de Microsoft France"
XNodeRoot.appendChild Xnode
objDOM.Save "c:\exemple.xml" 'sauvegarde du fichier
Set XNodeRoot = Nothing
Set Xnode = Nothing
Set objDOM = Nothing
End Sub
Bonjour,

avec ça tu devrais retrouver une présentation habituelle

' =============
' D O M 2 X M L
' =============

Public Sub DOM2XML(DOM As XmlDocument,XML As String)

Dim XTW As XmlTextWriter = New
XmlTextWriter(HttpContext.Current.Server.MapPath(XML),Nothing)
XTW.Formatting = Formatting.Indented
DOM.Save(XTW)
XTW.Close

End Sub

@ suivre
--
Alain Guimberteau
http://guimbert.net
JGP_NoMail
2007-02-20 11:36:58 UTC
Permalink
Bonjour,

Le 18/02/2007 13:03, Alain Guimberteau a écrit :
[SNIP..]
Post by Alain Guimberteau
avec ça tu devrais retrouver une présentation habituelle
' =============
' D O M 2 X M L
' =============
Public Sub DOM2XML(DOM As XmlDocument,XML As String)
Dim XTW As XmlTextWriter = New
XmlTextWriter(HttpContext.Current.Server.MapPath(XML),Nothing)
XTW.Formatting = Formatting.Indented
DOM.Save(XTW)
XTW.Close
End Sub
Merci pour votre réponse, sympa de vous pencher sur mon problème.

Mais, j'ai un type inconnu : XmlTextWriter quand j'utilise les
références "Microsoft XML v3 à v5" avec la référence "Microsoft XML v6",
il n'aime pas "XMLDocument".

JGP
Alain Guimberteau
2007-02-20 15:18:07 UTC
Permalink
Post by JGP_NoMail
Bonjour,
[SNIP..]
Post by Alain Guimberteau
avec ça tu devrais retrouver une présentation habituelle
' =============
' D O M 2 X M L
' =============
Public Sub DOM2XML(DOM As XmlDocument,XML As String)
Dim XTW As XmlTextWriter = New
XmlTextWriter(HttpContext.Current.Server.MapPath(XML),Nothing)
XTW.Formatting = Formatting.Indented
DOM.Save(XTW)
XTW.Close
End Sub
Merci pour votre réponse, sympa de vous pencher sur mon problème.
Mais, j'ai un type inconnu : XmlTextWriter quand j'utilise les références
"Microsoft XML v3 à v5" avec la référence "Microsoft XML v6", il n'aime pas
"XMLDocument".
JGP
XmlTextWriter c'est avec le .Net Framework, désolé
--
Alain Guimberteau
http://guimbert.net
Paul Bacelar
2007-02-21 01:32:20 UTC
Permalink
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/xmlsdk/html/cb0da671-270d-44c5-a77f-5032dc942dc2.asp

"Create a DOMDocument object.
Dim xmlDoc As New DOMDocument40
"Create the reader.
Dim rdr As New SAXXMLReader40
"Create the writer.
Dim wrt As New MXXMLWriter40

"Load the DOM document.
xmlDoc.async = False
xmlDoc.resolveExternals = False
xmlDoc.Load ("books.xml")

"Set properties on the XML writer.
wrt.byteOrderMark = True
wrt.omitXMLDeclaration = False
wrt.indent = True

"Set the XML writer to the SAX content handler.
Set rdr.contentHandler = wrt
Set rdr.dtdHandler = wrt
Set rdr.errorHandler = wrt
rdr.putProperty "http://xml.org/sax/properties/lexical-handler",
wrt
rdr.putProperty
"http://xml.org/sax/properties/declaration-handler", wrt

"Parse the DOMDocument object.
rdr.parse xmlDoc

"Show the results in the text box.
msgbox wrt.output
--
Paul Bacelar
MVP VC++
Post by Alain Guimberteau
Post by JGP_NoMail
Bonjour,
[SNIP..]
Post by Alain Guimberteau
avec ça tu devrais retrouver une présentation habituelle
' =============
' D O M 2 X M L
' =============
Public Sub DOM2XML(DOM As XmlDocument,XML As String)
Dim XTW As XmlTextWriter = New
XmlTextWriter(HttpContext.Current.Server.MapPath(XML),Nothing)
XTW.Formatting = Formatting.Indented
DOM.Save(XTW)
XTW.Close
End Sub
Merci pour votre réponse, sympa de vous pencher sur mon problème.
Mais, j'ai un type inconnu : XmlTextWriter quand j'utilise les références
"Microsoft XML v3 à v5" avec la référence "Microsoft XML v6", il n'aime
pas "XMLDocument".
JGP
XmlTextWriter c'est avec le .Net Framework, désolé
--
Alain Guimberteau
http://guimbert.net
JGP_NoMail
2007-02-21 11:22:54 UTC
Permalink
Bonjour,

Merci pour cette solution qui fonctionne impeccable.

JGP
Post by Paul Bacelar
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/xmlsdk/html/cb0da671-270d-44c5-a77f-5032dc942dc2.asp
"Create a DOMDocument object.
Dim xmlDoc As New DOMDocument40
"Create the reader.
Dim rdr As New SAXXMLReader40
"Create the writer.
Dim wrt As New MXXMLWriter40
"Load the DOM document.
xmlDoc.async = False
xmlDoc.resolveExternals = False
xmlDoc.Load ("books.xml")
"Set properties on the XML writer.
wrt.byteOrderMark = True
wrt.omitXMLDeclaration = False
wrt.indent = True
"Set the XML writer to the SAX content handler.
Set rdr.contentHandler = wrt
Set rdr.dtdHandler = wrt
Set rdr.errorHandler = wrt
rdr.putProperty "http://xml.org/sax/properties/lexical-handler",
wrt
rdr.putProperty
"http://xml.org/sax/properties/declaration-handler", wrt
"Parse the DOMDocument object.
rdr.parse xmlDoc
"Show the results in the text box.
msgbox wrt.output
JGP_NoMail
2007-02-21 11:21:26 UTC
Permalink
Le 20/02/2007 16:18, Alain Guimberteau a écrit :
[snip..]
Post by Alain Guimberteau
XmlTextWriter c'est avec le .Net Framework, désolé
Merci quand même pour l'aide. Vous avez relancé le fil, et, maintenant,
j'ai la solution de Paul B.

JGP
Loading...