Générer la première ligne d'un fichier XML depuis VBA (Processing Instructions)
Bonjour,
J'ai une application sous Access 2007/Windows7 depuis laquelle je dois générer un fichier XML.
Mon problème est de générer la première ligne du fichier xml:
< ?xml version="1.0" encoding="UTF-8" standalone="no"?>
< ?xml version="1.0"?> est insuffisant pour l'utilisation que j'en fait et c'est ce que j'obtiens si je ne mets pas
'Dim PI As XmlProcessingInstruction
...
' Var PI = objDom.CreateProcessingInstruction("xml", " version='1.0' encoding='UTF-8'")
'objDom.appendChild (PI)
Par contre si j'essaie de mettre les pseudos attributs j'obtiens une erreur sur XmlProcessingInstruction et CreateProcessingInstruction
Que faire ??
Merci à la bonne âme qui a une solution
Cem
J'ai utilisé le code suivant:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| Private Sub Create_XML(SenderDocID, .... SchemaID, FNSendControl)
Dim objDom As DOMDocument
Dim objRootElem As IXMLDOMElement
Dim objRootXSD, objRootXSD1 As IXMLDOMAttribute
Dim objMemberElem As IXMLDOMElement
Dim objMemberRel, ........ objMemberRel10 As IXMLDOMAttribute
Dim objMemberName As IXMLDOMElement
'Dim PI As XmlProcessingInstruction
Set objDom = New DOMDocument
' Var PI = objDom.CreateProcessingInstruction("xml", " version='1.0' encoding='UTF-8'")
'objDom.appendChild (PI)
' Creates root element DocumentsToSend
Set objRootElem = objDom.createElement("DocumentsToSend")
objDom.appendChild objRootElem
Set objRootXSD = objDom.createAttribute("xmlns:xsi")
objRootXSD.nodeValue = "http://www.w3.org/2001/XMLSchema-instance"
objRootElem.setAttributeNode objRootXSD
Set objRootXSD1 = objDom.createAttribute("xsi:noNamespaceSchemaLocation")
objRootXSD1.nodeValue = "./data/send/SendControl10.xsd"
objRootElem.setAttributeNode objRootXSD1
' Creates Member element Document
Set objMemberElem = objDom.createElement("Document")
objRootElem.appendChild objMemberElem
' Creates Attributes to the Member Document
Set objMemberRel10 = objDom.createAttribute("SchemaID")
objMemberRel10.nodeValue = SchemaID
objMemberElem.setAttributeNode objMemberRel10
......
Set objMemberRel = objDom.createAttribute("SenderDocID")
objMemberRel.nodeValue = SenderDocID
objMemberElem.setAttributeNode objMemberRel
' Saves XML data to disk.
objDom.Save (FNSendControl)
End Sub |