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
| function objTransformXMLXSL(xmlPath, xslPath, ArrParams)
' ArrParams est un tableau à 2 dimension avec N lignes et 2 colonnes
' Exemple de déclaration :
' Dim ArrParams(N,1) '==> 3 dimension ça ferait ArrParams(a,b,c)
'ArrParams(0,0)="NomParam0"
'ArrParams(0,1)="ValParam0"
'ArrParams(1,0)="NomParam1"
'ArrParams(1,1)="ValParam1"
'ArrParams(2,0)="NomParam2"
'ArrParams(2,1)="ValParam2"
'... etc
'ArrParams(N,0)="NomParamN"
'ArrParams(N,1)="ValParamN"
' on fera la boucle d'ajout des paramètres sur i (0à N) et on récupèrera NomParam(i) = ArrParams(i,0) et ValParam(i) = ArrParams(i,1)
' XMLDOM_PROGID et XMLDOM_PROGID sont des constantes déclarées ailleurs et dépendent du parser xml utilisé.
'j'utilise :
'const XMLDOM_PROGID = "MSXML2.FreeThreadedDOMDocument"
'const XSLT_PROGID ="Msxml2.XSLTemplate"
Dim objXML, objXSL
set objXML= Server.CreateObject(XMLDOM_PROGID)
objXML.async = false
objXML.load xml
set objXSL= Server.CreateObject(XMLDOM_PROGID)
objXSL.async = false
objXSL.load xsl
Dim xslt, xslProc
Set xslt = server.CreateObject(XSLT_PROGID)
xslt.stylesheet = objXSL
Set xslProc = xslt.createProcessor()
xslProc.input = objXML
Dim xslt, xslProc
Set xslt = server.CreateObject(XSLT_PROGID)
xslt.stylesheet = objXSL
Set xslProc = xslt.createProcessor()
xslProc.input = objXML
Dim i, j
for i=0 to UBound(ArrParams,1) '=N en fait
'UBound(ArrParams,X) : renvois la Xieme dimension du tableau
' ex : si ArrParams(a,b,c), UBound(ArrParams,1)=a, UBound(ArrParams,2)=b et UBound(ArrParams,3)=c
xslProc.addParameter Cstr(ArrParams(i,0)), Cstr(ArrParams(i,1))
'response.write "i=" & i & "<br/>"
'response.write "ArrParams(i,0)=" & ArrParams(i,0)& "<br/>"
'response.write "ArrParams(i,1)=" & ArrParams(i,1)& "<br/>"
next
xslProc.Transform
objTransformXMLXSL=xslProc.output
Set objXML=Nothing
Set objXSL=Nothing
Set xslt=Nothing
Set xslProc=Nothing
End function |
Partager