xsl-list
[Top] [All Lists]

RE: addParameter method and MSXML

2003-08-25 17:33:17
Hi.

I don't know this cfobject language but it seams to me that the problem is a
name one. I'll try to explain what I mean using the name of your objects

You create a XSLinput object ans load a xslt file, this object is a
FreeThreadedDOMDocument

You create a XSLTinput ans set is stylesheet to XSLinput, this object is a
XSLTemplate

You create a XMLinput and load a xml document, this is a DOMDocument object

You create a XSLProcessor from a XSLTemplate. Is this an object? If so where
is it created? If no, where do you relate this object to XSLTinput? Is here
where your code fail. Check your syntax and see where you'll have to change
and what you need to change. You might need to add the relationsheep between
XSLProcessor and XSLTinput just change the creation process to something
like <cfset XSLProcessor = XSLTinput.createProcessor>

Hope this helps

Regards,
Americo Albuquerque


-----Original Message-----
From: owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com 
[mailto:owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com] On Behalf Of 
Bruce Rojas-Rennke
Sent: Tuesday, August 26, 2003 12:54 AM
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: RE: [xsl] addParameter method and MSXML


Hey Jen,

  My brain's getting mildew, would you have a moment to look 
at below code and see if anything wrong jumps out at you? I 
seem to get confused with the part where I create the XSL 
processor and feed it..

--------------------------------------------------------------
--------------
---

<cfobject type="com"
          action="create"
          class="MSXML2.FreeThreadedDOMDocument"
                name="XSLinput">
  <cfset XSLinput.async = "false">
  <cfset XSLinput.load("http://127.0.0.1/ddm/apTransDetail.xslt";)>

<cfobject type="com"
          action="create"
          class="MSXML2.XSLTemplate"
                name="XSLTinput">
  <cfset XSLTemplate.stylesheet = "XSLinput">

<cfobject type="com"
          action="create"
          class="MSXML2.DOMDocument"
                name="XMLinput">
  <cfset XMLinput.async = "false">
  <cfset XMLinput.load("http://127.0.0.1/ddm/apAgingDetail_rs.xml";)>

<cfset XSLProcessor = XSLTemplate.createProcessor>
<cfoutput>
  <cfset XSLProcessor.addParameter("urlVar","#url.item#")>
</cfoutput>

<cfset XSLProcessor.input = "XMLinput">

<cfset result = XSLProcessor.transformNode("XSLinput")>

  <cfoutput>
      #result#
  </cfoutput>

--------------------------------------------------------------
--------------
---

-----Original Message-----
From: owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
[mailto:owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com]On Behalf Of 
Jennifer Phillips
Sent: Friday, August 22, 2003 5:35 AM
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: RE: [xsl] addParameter method and MSXML


Q: what class do I invoke to use the addparameter method 
with MSXML 4.0 
? my code below- my question refers to the COM object named 
'XSLinput', 
-
what
class should I use there so I can use the addParameter 
method widdit? 
Never mind the Cf bits, code is just shown here to be thorough..

Here is a example I wrote for another lister, shouldnt be 
that hard to understand, to use it for MSXML 4.0, just add 
.4.0 after all the class
names.   Its a little different from a basic transformation without
parameters, you have to use the XSLTemplate and 
IXSLProcessor, but its not that difficult.

Dim XSL
Dim XSLTemplate
Dim XSLProcessor
Dim XMLDom

' Create a DOM for the XSLT
' For some reason it must be FreeThreaded to work with 
XSLTemplate in MSXML3 set XSL = 
Server.CreateObject("MSXML2.FreeThreadedDOMDocument")

' Load in your stylesheet
XSL.Load "C:\xslt\brockTest2.xsl"

' Create the template object (Allows you to pass parameters) 
set XSLTemplate = Server.CreateObject("MSXML2.XSLTemplate")

' Assign the XSLTemplate the style sheet you wish to use.

set XSLTemplate.stylesheet = xsl

set XMLDom = Server.CreateObject("MSXML2.DOMDocument")

'Load an XML
XMLDom.load("c:\xslt\test.xml")

' Create an XSL processor from the template
set XSLProcessor = XSLTemplate.createProcessor

' Add the parameter ' "DirectoryName" parameter must exist in 
the XSLT XSLProcessor.addParameter "DirectoryName", 
server.MapPath("/") '

' Tell the XSLProcessor what the XML input is. 
XSLProcessor.input = XMLDOM

' Do the transformation
XSLProcessor.transform

' Write out the result
Response.Write XSLProcessor.Output


If you have any questions let me know.

Jen


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list




 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



<Prev in Thread] Current Thread [Next in Thread>