Bonjour,

J'utilise un fichier XML pour générer plusieurs actions suivant les informations de ma Base de Données

Pour ceci j'ai besoin d’exécuter des "call" à chaqu'une des boucles effectué
et créer des variables
comme ceci :
Prenom = PersonneElement.selectSingleNode("IdentiT/NewText01").text

Mais je voulais externaliser (modulariser mon projet) cette action dans une procédure extérieur au script de base!!!
est-ce possible !!!!

et l'utilisation : des classes en VBScript est-ce une bonne idée? je connais pas!
http://jerome.developpez.com/tutos/classesvbscript/
comme je voudrais modulariser mon projet, et une solution plutot adapter a mon scrip, mais je suis pas vraiment alaise avec le BVSript.
mon projet de base (2009) été en MS-DOS mais il ne me satisfais plus...


Voici mes bout de codes :


Mon Fichier initial
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
128
129
130
131
132
 
'	-----	-----	-----	-----	-----
'	SelectionDepart
'	-----	-----	-----	-----	-----
	SelectionDepart = InputBox ("Tapez 1 " & vbCrlf & "     ou 2 " & vbCrlf & "     ou autres Valeurs" _ 
							, "JojoSs : SelectionDepart" _ 
							, "2")
 
'	-----	-----	-----	-----	-----
'	Aiguillage selon la SelectionDepart
'	-----	-----	-----	-----	-----
	If SelectionDepart = 1 Then
			FichierXML = "Peoples_Arbre00_01_Base02.xml"
			MsgBox	"Fonction if = un" & vbCrlf & _ 
					"FichierXML : " & FichierXML _ 
						, , "JojoSs_Dev... [SelectionDepart - If]"
			'	OuvertureXML
			Call OuvertureXML ()
	Elseif SelectionDepart = 2 Then
			FichierXML = "Peoples_Arbre00_01_Base02.xml"
			MsgBox	"Fonction if = Deux" & vbCrlf & _ 
					"FichierXML : " & FichierXML _ 
						, , "JojoSs_Dev... [SelectionDepart - If]"
			'	OuvertureXML
			Call OuvertureXML ()
			FichierXML = "Peoples_Arbre00_02_Base02.xml"
			MsgBox	"Fonction if = Deux" & vbCrlf & _ 
					"FichierXML : " & FichierXML _ 
						, , "JojoSs_Dev... [SelectionDepart - If]"
			'	OuvertureXML
			Call OuvertureXML3 ()
 
	Else
			FichierXML = "Peoples_Arbre00_02_Base02.xml"
			MsgBox	"Fonction if = Autres" & vbCrlf & _ 
					"FichierXML : " & FichierXML _ 
						, , "JojoSs_Dev... [SelectionDepart - If]"
			'	OuvertureXML
			Call OuvertureXML4 ()
	End if
 
 
 
'	#####	#####	#####	#####	#####
'	Fin du Script
'	#####	#####	#####	#####	#####
 
Msgbox "Fin du Script" _ 
			, , "JojoSs Dev"
 
 
 
'	#####	#####	#####	#####	#####
'	Variables
'	#####	#####	#####	#####	#####
	Dim		FichierXML
		' FichierXML  :Est le fichier XML a ouvrir
 
'	Node IdentiT
	Public	Prenom
	Public	Nom
	Public	Sexe
 
'	Node Evenements
	Public	Naiss
	Public	DateNaiss
	Public	Dece
	Public	DateDece
 
'	Node jSOSA
	Public	jSOSA01
	Public	jSOSA02
	Public	jSOSA03
	Public	jSOSA04
 
 
'	#####	#####	#####	#####	#####
'	Procédures
'	#####	#####	#####	#####	#####
 
'	-----	-----	-----	-----	-----
'	OuvertureXML
'	-----	-----	-----	-----	-----
Sub OuvertureXML ()
 
	'	La première chose à faire dans notre code est donc d'initialiser un parseur :
	Set xmlDoc = CreateObject("Microsoft.XMLDOM")
 
	'	Il nous faut maintenant ouvrir notre fichier. 
	'	On va également indiquer au parseur de charger tout le fichier en mémoire avant de commencer à le parser :
	xmlDoc.Async = "false"
 
	'	=====	=====	=====	=====	=====
	Msgbox "Fichier : " & FichierXML _ 
				, , "JojoSs Dev [FichierXML]"
 
		xmlDoc.Load(FichierXML)
		'	test d'ouverture
			if xmlDoc.Load(FichierXML) Then
				Set idDocXMLGenea = xmldoc.SelectSingleNode("//DatasGenea/Id")
				MsgBox "identification du Fichier : " & idDocXMLGenea.Text _ 
						, , "JojoSs_Dev... [xmlDoc.Load]"
				Else
				MsgBox "Erreur ouverture fichier xml" _ 
						, , "JojoSs_Dev... [msg Erreur]"
			End If
 
			For Each PersonneElement In xmlDoc.selectNodes("//Personnes/Personne")
				Call InitialisationDesVariables ()
				Call MsgBox_ ()
				'	-----	-----	-----	-----	-----
				'	SelectionvariableSingleNode 
				'	-----	-----	-----	-----	-----
				'	Node IdentiT
					Prenom = PersonneElement.selectSingleNode("IdentiT/NewText01").text
					Nom = PersonneElement.selectSingleNode("IdentiT/NewText02").text
					Sexe = PersonneElement.selectSingleNode("IdentiT/NewText03").text
				'	Node Evenements
					Naiss = PersonneElement.selectSingleNode("Evenements/NewText01").text
					DateNaiss = PersonneElement.selectSingleNode("Evenements/NewText02").text
					Dece = PersonneElement.selectSingleNode("Evenements/NewText03").text
					DateDece = PersonneElement.selectSingleNode("Evenements/NewText04").text
				'	Node jSOSA
					jSOSA01 = PersonneElement.selectSingleNode("jSOSA/NewText01").text
					jSOSA02 = PersonneElement.selectSingleNode("jSOSA/NewText02").text
					jSOSA03 = PersonneElement.selectSingleNode("jSOSA/NewText03").text
					jSOSA04 = PersonneElement.selectSingleNode("jSOSA/NewText04").text
				Call MsgBox_ ()
			Next
 
	Set xmlDoc = Nothing
End Sub


Mon Fichier XML
Code XML : 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
 
<?xml version="1.0" encoding="ISO-8859-1"?>
 
	<DatasGenea>
	<!-- Nodes d'Identification -->
		<Id>Arbre 000 Generation 01</Id>
	<!-- Nodes d'Arbre -->
		<Arbre000>
			<Personnes>
				<Personne>
					<IdentiT>
						<NewText01>Jorge</NewText01>
						<NewText02>LOPES</NewText02>
						<NewText03>M</NewText03>
					</IdentiT>
					<jSOSA>
						<NewText01>Arb00-Gene01-SOSA000001</NewText01>
						<NewText02>Arb01-Gene01-OrdreFam00-OrdreNaiss01-Lien00</NewText02>
						<NewText03>00.01.000001</NewText03>
						<NewText04>0001000001</NewText04>
					</jSOSA>
					<Evenements>
						<NewText01>1975.12.30</NewText01>
						<NewText02>[ !?_Ville_?! ], [ !?_Etat / Province_?! ], [ !?_Pays_?! ]</NewText02>
						<NewText03>_AAAA-MM-JJ_</NewText03>
						<NewText04>[ !?_Ville_?! ], [ !?_Etat / Province_?! ], [ !?_Pays_?! ]</NewText04>
					</Evenements>
				</Personne>
			</Personnes>
		</Arbre000>
	</DatasGenea>




Mes procédures (pour la modularisation)
InitialisationDesVariables -> Permet de remettre les variables à un état vide
MsgBox_ -> Permet d’afficher les variables

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
 
'	-----	-----	-----	-----	-----
'	Initialisation des variables
'	-----	-----	-----	-----	-----
Sub InitialisationDesVariables ()
'	Node IdentiT
	Prenom		= Empty
	Nom			= Empty
	Sexe		= Empty
 
'	Node Evenements
	Naiss		= Empty
	DateNaiss	= Empty
	Dece		= Empty
	DateDece	= Empty
 
'	Node jSOSA
	jSOSA01		= Empty
	jSOSA02		= Empty
	jSOSA03		= Empty
	jSOSA04		= Empty
End Sub
 
'	-----	-----	-----	-----	-----
'	MsgBox_
'	-----	-----	-----	-----	-----
Sub MsgBox_ ()
					 MsgBox	"Prénom : " & Prenom & vbCrlf & _ 
							"Nom : " & Nom & vbCrlf & _ 
							"Sexe : " & Sexe _ 
						, , "JojoSs_Dev... [selectNodes]"
 
					 MsgBox	"Prénom : " & Prenom & vbCrlf & _ 
							vbCrlf & _ 
							"jSOSA01 : " & jSOSA01 & vbCrlf & _ 
							"jSOSA02 : " & jSOSA02 & vbCrlf & _ 
							"jSOSA03 : " & jSOSA03 & vbCrlf & _ 
							"jSOSA04 : " & jSOSA04 _ 
						, , "JojoSs_Dev... [selectNodes]"
 
					 MsgBox	"Prénom : " & Prenom & vbCrlf & _ 
							vbCrlf & _ 
							"Naiss : " & Naiss & vbCrlf & _ 
							"DateNaiss : " & DateNaiss & vbCrlf & _ 
							"Dece : " & Dece & vbCrlf & _ 
							"DateDece : " & DateDece _ 
						, , "JojoSs_Dev... [selectNodes]"
 
End Sub

J'avais pensé à une structure de cette forme, mais ca marche pas!!!


Mon Nouveau Script
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
 
'	-----	-----	-----	-----	-----
'	OuvertureXML4
'	-----	-----	-----	-----	-----
Sub OuvertureXML4 ()
	Set xmlDoc = CreateObject("Microsoft.XMLDOM")
 
	xmlDoc.Async = "false"
 
	'	=====	=====	=====	=====	=====
	Msgbox "Fichier : " & FichierXML _ 
				, , "JojoSs Dev [FichierXML]"
 
		xmlDoc.Load(FichierXML)
		'	test d'ouverture
			if xmlDoc.Load(FichierXML) Then
				Set idDocXMLGenea = xmldoc.SelectSingleNode("//DatasGenea/Id")
				MsgBox "identification du Fichier : " & idDocXMLGenea.Text _ 
						, , "JojoSs_Dev... [xmlDoc.Load]"
				Else
				MsgBox "Erreur ouverture fichier xml" _ 
						, , "JojoSs_Dev... [msg Erreur]"
			End If
 
			For Each PersonneElement In xmlDoc.selectNodes("//Personnes/Personne")
				Call InitialisationDesVariables ()
				Call MsgBox_ ()
				Call SelectionVariableSingleNode ()
				Call MsgBox_ ()
			Next
 
	Set xmlDoc = Nothing
End Sub



Ma procédure
SelectionVariableSingleNode [COLOR="#008000"]-> Permet d’afficher les variables issu des Nodes ==>> ne fonctionne pas
msg = Erreur : objet requi: 'PersonneElement'

En faite nul ...

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
 
'	-----	-----	-----	-----	-----
'	SelectionVariableSingleNode 
'	-----	-----	-----	-----	-----
Sub SelectionVariableSingleNode ()
 
 
'	Node IdentiT
	Prenom = PersonneElement.selectSingleNode("IdentiT/NewText01").text
	Nom = PersonneElement.selectSingleNode("IdentiT/NewText02").text
	Sexe = PersonneElement.selectSingleNode("IdentiT/NewText03").text
 
'	Node Evenements
	Naiss = PersonneElement.selectSingleNode("Evenements/NewText01").text
	DateNaiss = PersonneElement.selectSingleNode("Evenements/NewText02").text
	Dece = PersonneElement.selectSingleNode("Evenements/NewText03").text
	DateDece = PersonneElement.selectSingleNode("Evenements/NewText04").text
 
'	Node jSOSA
	jSOSA01 = PersonneElement.selectSingleNode("jSOSA/NewText01").text
	jSOSA02 = PersonneElement.selectSingleNode("jSOSA/NewText02").text
	jSOSA03 = PersonneElement.selectSingleNode("jSOSA/NewText03").text
	jSOSA04 = PersonneElement.selectSingleNode("jSOSA/NewText04").text
End Sub
Merci