Bonjour à tous,
Je rencontre des difficultés actuellement pour ouvrir un fichier xml, mon pb est le suivant :
je dois à partir d'excel traiter + sieurs fichiers "xml", jusqu'a présent tous se passe bien je charge mon document , je l'ouvre et je récupère les données dans les balises.
Mais le probleme est qu' a ma 3eme ligne il y a une ligne qui fait que je n'arrive pas exploiter mon fichier xml.!!!
si je supprime cette ligne manuellement et que j'enregistre mon fichier alors tous se passe corectement par contre si la ligne n'est pas suprimer le fichier ne peut pas etre exploiter.
Quelqu'un aurait-il une solution pour supprimer la 3eme ligne automatiquement de mon fichier XML, pour qu'il puisse etre exploitable????
Merci.
En VBA
je vous envois le code qui permet d'exploiter le fichier xml.
debut de mon fichier XML
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127 Sub IMPORT_XML_File() 'Déclaration des Variables et des objets DOMXML Dim ParsDoc As MSXML2.DOMDocument Dim ListeEnfants_de_md As MSXML2.IXMLDOMNodeList Dim ListeEnfants_de_mi As MSXML2.IXMLDOMNodeList Dim ListeEnfants_de_mv As MSXML2.IXMLDOMNodeList Dim Liste_md As MSXML2.IXMLDOMNodeList Dim Noeud_mi As MSXML2.IXMLDOMNode Dim Noeud_mts As MSXML2.IXMLDOMNode Dim Noeud_gp As MSXML2.IXMLDOMNode Dim Noeud_mt As MSXML2.IXMLDOMNode Dim Noeud_mv As MSXML2.IXMLDOMNode Dim Noeud_moid As MSXML2.IXMLDOMNode Dim Noeud_r As MSXML2.IXMLDOMNode Dim Noeud_md As MSXML2.IXMLDOMNode '**********noeud de la ligne 3 à supprimer...*************** Dim Noeud_line3 As String 'Dim Noeud3 As MSXML2.IXMLDOMDocumentType Dim Noeud3 As MSXML2.IXMLDOMNotation Dim N3 As MSXML2.IXMLDOMNode '***************************************** Dim Enfants_de_md As MSXML2.IXMLDOMNode Dim Enfants_de_mi As MSXML2.IXMLDOMNode Dim Enfants_de_mv As MSXML2.IXMLDOMNode Dim racine_mdc As MSXML2.IXMLDOMNode Dim Objet_Erreur As MSXML2.IXMLDOMParseError Dim intI As Integer Dim Nom_moid As String Dim file_xml As String Dim objet_node As String Dim data As String 'permet de ne pas voir se qui se passe Application.ScreenUpdating = False 'Pour nettoyer les cellules à chaque renouvellement du programme 'Worksheets("IMPORT_XML").Activate 'Cells.ClearContents file_xml = Worksheets("Sheet1").Cells(15, 5).Value ' au dessus il y a la celluel qui donne le chemin d'acces à mon fichier xml ' mettre en commentaire la ligne du dessus, puis mettre en argument de la fonction. 'Initialisation du Parseur 'la fonction permet de faire la référence entre la variable et le DOC_XML Set ParsDoc = New MSXML2.DOMDocument 'Chargement du Document de manière synchrone ParsDoc.async = False 'on charge le document en mémoire If ParsDoc.Load(file_xml) Then MsgBox "Document XML correctement chargé" Else '****************************supression de la ligne 3 des XML Files...************************* 'Noeud_line3 = ParsDoc.Xml 'MsgBox (Noeud_line3) 'MsgBox (objet_node) 'data = "<!DOCTYPE mdc SYSTEM "MeasDataCollection.dtd">" 'Set Noeud3 = ParsDoc.createCDATASection(<![DOCTYPE mdc SYSTEM ["MeasDataCollection.dtd"]]>) 'data = Noeud3.baseName 'Set Noeud3 = ParsDoc.doctype 'data = Noeud3.nodeTypedValue 'MsgBox (data) '******************************************************************************************** MsgBox "Erreur de lecture du document XML" ' **************************** ' ******************Partie concernant la gestion des erreurs********************** 'instancier le fichier xml pour la gestion des erreurs Set Objet_Erreur = ParsDoc.parseError ' contient le code de l'erreur da la dernière erreur d'analyse, en lecture seule. code = Objet_Erreur.errorCode MsgBox (code) 'fournit une explication à propos de l'erreur, en lecture seule. raison = Objet_Erreur.reason MsgBox (raison) 'contient la position du fichier absolue où l'erreur s'est produite, en lecture seule. position_fichier = Objet_Erreur.filepos MsgBox (position) 'spécifie le numéro de la ligne contenant l'erreur, en lecture seule. position_ligne = Objet_Erreur.Line MsgBox (position_ligne) 'contient la position du caractère à l'intérieur de la ligne où l'erreur s'est produite, en lecture seule. Position_carac_ligne = Objet_Erreur.linepos MsgBox (Position_carac_ligne) 'retourne le texte complet de la ligne contenant l'erreur, en lecture seule. chaine = Objet_Erreur.srcText MsgBox (chaine) 'contient l'adresse URL du document XML contenant la dernière erreur, en lecture seule. adr_url = Objet_Erreur.URL MsgBox (adr_url) ' **************************************** End If Application.DisplayAlerts = True Application.ScreenUpdating = True end sub
Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="MeasDataCollection.xsl"?> <!DOCTYPE mdc SYSTEM "MeasDataCollection.dtd"> **************la ligne a suprimer ce trouve au dessus***********
Partager