This week's book giveaway is in the JavaScript forum.
We're giving away four copies of Svelte and Sapper in Action and have Mark Volkmann on-line!
See this thread for details.
Win a copy of Svelte and Sapper in Action this week in the JavaScript forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Ron McLeod
  • Paul Clapham
  • Bear Bibeault
  • Junilu Lacar
Sheriffs:
  • Jeanne Boyarsky
  • Tim Cooke
  • Henry Wong
Saloon Keepers:
  • Tim Moores
  • Stephan van Hulst
  • Tim Holloway
  • salvin francis
  • Frits Walraven
Bartenders:
  • Scott Selikoff
  • Piet Souris
  • Carey Brown

Just figured out my JSP/XSL/XML question below

 
Greenhorn
Posts: 5
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
In this solution I have 2 JSP's, and one XSL file.
checkbook_request.jsp (a.k.a JSP1) looks like this...........
<HTML>
<HEAD>
<TITLE>DynamicTestRequest</TITLE>
<BODY>
<FORM METHOD="POST" action="checkbook1.jsp">
Enter the xml here:
<textarea name="xmlsource"></textarea>
<br>
<br>
<br>
<input type="submit" name="submit" value="ENTER">
<br>
</FORM>
</BODY>
</HTML>
As you can see it posts to checkbook1.jsp
Checkbook1.jsp looks like this...
<%
String xml = request.getParameter("xmlsource");
%>
<script language="javascript">
// Load XML
var xml = new ActiveXObject("MSXML2.DOMDocument.3.0")
xml.async = false
xml.loadXML('<%=xml%>')
// Load the XSL
var xsl = new ActiveXObject("MSXML2.DOMDocument.3.0")
xsl.async = false
xsl.load("checkbook1.xsl")
// Transform
document.write(xml.transformNode(xsl))
</script>

my xsl page looks like this.........
<?xml version='1.0'?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">;
<xsl:template match="/">
<HTML>
<STYLE>
.hdr {font-family:Verdana;font-size:9pt;border-bottom:1px black solid;font-weight:bold;}
.normal {font-family:Verdana;font-size:8pt;border-bottom:1px silver solid;}
</STYLE>
<SCRIPT language="JavaScript"><xsl:comment><![CDATA[
function colorItem(num)
{
if (num<0)
{
document.write("<FONT COLOR='red'>"+num+"</FONT>");
}
else
{
document.write(num);
}
return;
}

]]></xsl:comment></SCRIPT>
<BODY>
<CENTER>
<TABLE BORDER="0" BORDERCOLOR="silver" CELLSPACING="0" CELLPADDING="5" WIDTH="60%">
<TR>
<TD CLASS="hdr">DATE</TD>
<TD CLASS="hdr">ID</TD>
<TD CLASS="hdr">ENTRY</TD>
<TD CLASS="hdr" COLSPAN="3">AMOUNT</TD>
</TR>
<xsl:for-each select="//checkbook/entry" order-by="number(transdate)">
<DIV STYLE="display:none;"><xsl:eval>IsNeg=0</xsl:eval></DIV>
<TR>
<TD CLASS="normal"><xsl:value-of select="@id" /></TD>
<TD CLASS="normal"><xsl:value-of select="transdate" /></TD>
<TD CLASS="normal"><xsl:value-of select="description" /></TD>
<TD CLASS="normal">
<xsl:element name="SCRIPT">
colorItem('<xsl:value-of select="amount" />')
</xsl:element>
</TD>
</TR>
</xsl:for-each>
</TABLE>
</CENTER>
</BODY>
</HTML>
</xsl:template>

</xsl:stylesheet>

Now I entered in an XML string in the textarea of checkbook_request.jsp that looked like this.......
<checkbook><entry id="1"><transdate>20001011</transdate><description>Gas</description><amount>-12.30</amount> </entry><entry id="2"><transdate>20001011</transdate><description>PAID</description><amount>+100.30</amount></entry><entry id="1"><transdate>20001012</transdate><description>VISA</description><amount>-211.11</amount></entry></checkbook>
Make sure you have the latest version of MSXML, version 3.
 
Ranch Hand
Posts: 84
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi Kevin
What you do here is to perform the transformation client-side, depending on the user to use the latest IE available.
An interesting solution, but would you know how, if possible, to use the MSXML Object server-side from a JSP page?
Regards,
Marius
    Bookmark Topic Watch Topic
  • New Topic