?
Solved

ASP - XML,XSL

Posted on 2002-06-12
4
Medium Priority
?
348 Views
Last Modified: 2008-02-01

  Hi !

I need an exact way how to generate dinamically XML,XSL from ASP.

Prob:
When I use native .xml and .xsl and view it in a browser, it works correctly.
When one of them (or both) comes from ASP, *sometimes* generates an error.

F.e. xsl-asp:
<%@language="JScript"%>
<%
Response.Buffer= true;
Response.ContentType = "text/xml";
%><?xml version="1.0" encoding="windows-1252"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
 hello
</xsl:template>
</xsl:stylesheet>

F.e. xml-asp:
<%@language="JScript"%>
<%
Response.Buffer= true;
Response.ContentType="text/xml";
%>
<?xml version="1.0" encoding="windows-1252"?>
<data>
     <User Active="1" UserName="Stewe"/>
</data>

It's not a real dinamic xsl, xml, but just for an example. Sometimes it doesn't work. Error f.e.: Xml document must have a top - level element.
I've tried it with script transform, but the same occurs.

When I load first the ASP-XML part, then the native XSL part, so then sometimes ASP-XML generates an error.
When I use both of them as ASP, then sometimes the first, sometime the last generates the error. SOMETIMES.

script transform:
var oXML = new ActiveXObject("Msxml2.DOMDocument.3.0");
var oXSLT = new ActiveXObject("Msxml2.DOMDocument.3.0");
oXML.async = false;
oXSLT.async = false;
oXSLT.load("userxsl.asp"); // or userxsl.xsl
oXML.load("user.asp"); // or user.xml

I cannot found a stabile way.
When both of them are native, then everything is stabile and working correctly.

There're differences in ASP-XSL and native XSL header.

Only in native XSL header (f.e. GET localhost/userxsl.xsl)
ETag: "a07b9245fe11c21:bc7"
Accept-Ranges: bytes
Last-Modified: Wed, 12 Jun 2002 10:45:30 GMT

Only in ASP-XSL header:
Connection: keep-alive
Connection: Keep-Alive (native XSL has only the first one)
Cache-control: private
Expires: Wed, 12 Jun 2002 10:44:43 GMT

Both content type is text/xml of course.

What can be the problem.
I've just updated everything using windows update. Everything.


   Stewe

0
Comment
Question by:stewe
  • 2
  • 2
4 Comments
 
LVL 23

Expert Comment

by:b1xml2
ID: 7073397
The answer is this stewe.

consider this
=============
XSLT Document
==============
<%@language="JScript"%>



<%
Response.Buffer= true;
Response.ContentType = "text/xml";
%>
<?xml version="1.0" encoding="windows-1252"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
hello
</xsl:template>
</xsl:stylesheet>


There will be an error generated by the XSLT Engine indicating that the stylesheet is not well-formed. Viewing it directly will pose no problem. This is a legacy of MSXML 2 where if there is an empty line at the top of the document, it wont load for any XML document. So, view the xsl.asp source and see if there is an extra line at the top.

If the asp is changed to
<%@language="JScript"%>
<%
Response.Buffer= true;
Response.ContentType = "text/xml";
%><?xml version="1.0" encoding="windows-1252"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
hello
</xsl:template>
</xsl:stylesheet>


There will be no problem.

Make sure you clear your cache before you do anything with your browser.
0
 
LVL 23

Accepted Solution

by:
b1xml2 earned 1200 total points
ID: 7073404
also you might like to do the same for your XML document.

<%@language="JScript"%>
<%
Response.Buffer= true;
Response.ContentType="text/xml";
%><?xml version="1.0" encoding="windows-1252"?>
<data>
    <User Active="1" UserName="Stewe"/>
</data>
0
 
LVL 1

Author Comment

by:stewe
ID: 7074969

You're ok. It works now.
There're 2 important things:
- these new lines
- and in IIS, the 'ASP file caching' MUST BE CHECKED. MUST BE.

   Stewe
0
 
LVL 1

Author Comment

by:stewe
ID: 7074972
Thx

   Stewe
0

Featured Post

What Kind of Coding Program is Right for You?

There are many ways to learn to code these days. From coding bootcamps like Flatiron School to online courses to totally free beginner resources. The best way to learn to code depends on many factors, but the most important one is you. See what course is best for you.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Introduction In my previous article (http://www.experts-exchange.com/Microsoft/Development/MS-SQL-Server/SSIS/A_9150-Loading-XML-Using-SSIS.html) I showed you how the XML Source component can be used to load XML files into a SQL Server database, us…
Many times as a report developer I've been asked to display normalized data such as three rows with values Jack, Joe, and Bob as a single comma-separated string such as 'Jack, Joe, Bob', and vice versa.  Here's how to do it. 
In the video, one can understand the process of resizing images in single or bulk. Kernel Bulk Image Resizer is an easy to use tool for resizing large number of images. One can add and resize multiple images with this tool in single go. The video sh…
To export Lotus Notes to Outlook PST or Exchange and Domino Server files to Exchange Server or PST files with ease, go for Kernel for Lotus Notes to Outlook conversion tool. Through the video, you can watch the conversion process. A common user with…

568 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question