Subject: RE: [xsl] XSL Problem From: cknell@xxxxxxxxxx Date: Wed, 07 Jul 2004 16:48:02 -0400 |
You will save yourself a great deal of headache if you download the Microsoft XML SDK help file. When several years ago I did what you are now doing I ran into the same problem, to wit, you are using the wrong COM object. Here is a sample from the help file to illustrate: Dim xslt As New Msxml2.XSLTemplate40 Dim xslDoc As New Msxml2.FreeThreadedDOMDocument40 Dim xmlDoc As New Msxml2.DOMDocument40 Dim xslProc As IXSLProcessor xslDoc.async = False xslDoc.Load "sample.xsl" Set xslt.stylesheet = xslDoc xmlDoc.async = False xmlDoc.Load "books.xml" Set xslProc = xslt.createProcessor() xslProc.input = xmlDoc xslProc.addParameter "param1", "Hello" xslProc.Transform MsgBox xslProc.output -- Charles Knell cknell@xxxxxxxxxx - email -----Original Message----- From: retmmc <retmmc@xxxxxxxxxxxxx> Sent: Wed, 7 Jul 2004 14:48:08 -0500 To: <xsl-list@xxxxxxxxxxxxxxxxxxxxxx> Subject: [xsl] XSL Problem To begin with, I'm fairly new (actually brand new) to XML/XSL programming. I am trying to create an piece to display references, job aids and/or glossary items for a topic in an eLearning event. The problem arises when I try to transform my XML doc with an XSL stylesheet using VBScript/ASP. In index.asp I have the following code: Dim objXML Dim objXSL Dim strLoId Dim strXMLFile Dim strXSLFile strXMLFile = "resources.xml" strXSLFile = "resources.xsl" strLoId = Request.QueryString("loid") 'Instantiate the XMLDOM Object that will hold the XML file. set objXML = Server.CreateObject("Microsoft.XMLDOM") 'Turn off asynchronous file loading. objXML.async = false 'Load the XML file. objXML.load(strXMLFile) 'Instantiate the XMLDOM Object that will hold the XSL file. set objXSL = Server.CreateObject("Microsoft.XMLDOM") 'Turn off asynchronous file loading. objXSL.async = false 'Load the XSL file. objXSL.load(strXSLFile) 'Use the "transformNode" method of the XMLDOM to apply the XSL 'stylesheet to the XML document. Then the output is written to the 'client. Response.Write(objXML.transformNode(objXSL)) This produces the following error: msxml3.dll (0x80004005) The stylesheet does not contain a document element. The stylesheet may be empty, or it may not be a well-formed XML document. My test stylesheet code follows: <?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html" /> <xsl:template match="/"> <html> <head> <title>Support Documents for <i>insert object name here</i></title> <link rel='stylesheet' type='text/css' href='ca2.css' /> </head> <body> <xsl:apply-templates select="los" /> </body> </html> </xsl:template> <xsl:template match="los"> <h1>Support Documents for <i>insert object name here</i></h1> <xsl:apply-templates select="lo" /> </xsl:template> <xsl:template match="lo"> <h2>Matched LO</h2> <xsl:apply-templates select="references" /> <xsl:apply-templates select="job_aids" /> <xsl:apply-templates select="glossary" /> </xsl:template> <xsl:template match="references"> <h3>Matched References</h3> </xsl:template> <xsl:template match="job_aids"> <h3>Matched Job Aids</h3> </xsl:template> <xsl:template match="glossary"> <h3>Matched Glossary</h3> </xsl:template> </xsl:stylesheet> When I run my XML file with the following line: <?xml-stylesheet version="1.0" type="text/xsl" href="resource.xsl"?> everything displays as planned. I need to run this via the asp page so I can get the loid parameter from the querystring to display the proper document links. Any ideas? Thanks, Raymond Sugel Sr
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Formatting negative numbe, M. David Peterson | Thread | RE: [xsl] Formatting negative numbe, Tracy Atteberry |
RE: [xsl] XSL pattern needed for be, Tracy Atteberry | Date | RE: [xsl] Formatting negative numbe, Tracy Atteberry |
Month |