Déclaration du fichier XML ?
Bonjour,
Je ne trouve pas l'emplacement de la déclaratation du fichier XML.
Ma demande correspond un peu :
A partir d'un fichier XML (encodage inconnu), je souhaite relire ce fichier et afficher à l'écran le contenu sans modification, sauf l'encodage UTF-8 avec Microsoft .XMLDOM.
Cordialement,
------------------
Citation:
Envoyé par
Najdar
Bonjour calimero91
Voici un code rapide qui répond, j'espère, à ton problème.
Rien n'est commenté, mais en regardant dans l'aide tu devrais pouvoir t'en sortir. ;)
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 49 50 51 52 53 54 55 56 57 58
| Option Explicit
Private Sub Form_Load()
Dim Dom As DOMDocument40
Dim Xml As String
Dim NodeList As IXMLDOMNodeList
Dim Node As IXMLDOMElement
Dim NodeList2 As IXMLDOMNodeList
Dim Node2 As IXMLDOMElement
Xml = ""
Xml = Xml & "<?xml version='1.0' encoding='ISO-8859-1'?>" & vbCrLf
Xml = Xml & "<EcuDatas>" & vbCrLf
Xml = Xml & " <Messaging DefaultInterRespDelay='30'>" & vbCrLf
Xml = Xml & " <Request Frame='22'>" & vbCrLf
Xml = Xml & " <Response Frame='22'/>" & vbCrLf
Xml = Xml & " </Request>" & vbCrLf
Xml = Xml & " </Messaging>" & vbCrLf
Xml = Xml & "</EcuDatas>"
Set Dom = New DOMDocument40
Dom.async = False
Dom.validateOnParse = False
Dom.resolveExternals = True
Dom.preserveWhiteSpace = True
If Dom.loadXML(Xml) = False Then
MsgBox "Erreur lors du chargement du XML" & vbCrLf & _
Trim(Replace(Dom.parseError.reason, vbCrLf, " ")) & " : " & _
Trim(Dom.parseError.srcText), vbCritical
End If
Set NodeList = Dom.selectNodes("//Request[@Frame]")
For Each Node In NodeList
'Affiche :
'<Request Frame='22'>
' <Response Frame='22'/>
'</Request>
Debug.Print "//Request[@Frame] :" & vbCrLf & Node.Xml
'Affiche 22
Debug.Print Node.getAttribute("Frame")
Set NodeList2 = Node.selectNodes("./Response[@Frame]")
For Each Node2 In NodeList2
'Affiche :
' <Response Frame='22'/>
Debug.Print "./Response[@Frame] :" & vbCrLf & Node2.Xml
'Affiche 22
Debug.Print Node2.getAttribute("Frame")
Next Node2
Next Node
End Sub |
Résultat de la fenêtre d'éxécution :
Code:
1 2 3 4 5 6 7 8
| //Request[@Frame] :
<Request Frame="22">
<Response Frame="22"/>
</Request>
22
./Response[@Frame] :
<Response Frame="22"/>
22 |