Home. 
.

transparent

transparent

transparent

Altova Mailing List Archives


Using SAX with XSL to load XML

From: TI@-----------.---------.---
To: NULL
Date: 11/4/2004 7:09:00 AM
My current program loads xml with DOM. I have a very large XML file that 
takes forever to open WEB page. How do I program SAX to load xml file and 
still keep XSL to display data into HTML. I hope I said that right.

---HTML---
<html xmlns:v="urn:schemas-microsoft-com:vml" 
xmlns:o="urn:schemas-microsoft-com:office:office" 
xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv="Content-Language" content="en-us">
<meta name="GENERATOR" content="Microsoft FrontPage 6.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<link rel="File-List" href="DOLWMDDREQ_files/filelist.xml">

<title>DOL-W, MDD Requisition Tracking Program</title>
<SCRIPT language="jscript">
      var objSrcTree, ObjXSLT, objCache;

function init(){
 
// Check client  for Msxm12 version      
 try {
 objSrcTree = new ActiveXObject("Msxml2.DOMDocument.4.0");
 }
 catch (err) { 
// Can't create Automation object, must pop up a window to load MSXML 4 SP2 
 msxml4Pop();
 }
        // Load xml and xsl files
         objSrcTree = new ActiveXObject("Msxml2.DOMDocument.4.0");
         objSrcTree.async = false;
         objSrcTree.validateOnParse = false;
         objSrcTree.resolveExternals = false
         objSrcTree.preserveWhiteSpace = false;
         objSrcTree.load('DOLXMLWEBOUT.xml');
         
         // Check for errors in loading xml
         
         if (objSrcTree.parseError != 0) {
         output.innerHTML = objSrcTree.parseError.reason + "<BR>"
         output.innerHTML += objSrcTree.parseError.url + "<BR>"
         output.innerHTML += objSrcTree.parseError.errorCode + "<BR>"
         output.innerHTML += objSrcTree.parseError.filepos + "<BR>"
         output.innerHTML += objSrcTree.parseError.line + "<BR>"
         output.innerHTML += objSrcTree.parseError.linepos + "<BR>"
         }

         objXSLT=new ActiveXObject('MSXML2.FreeThreadedDOMDocument.4.0');
         objXSLT.async = false;
         objXSLT.load('DOLWMDDXSL.xsl');

         objCache   = new ActiveXObject("Msxml2.XSLTemplate.4.0");
         objCache.stylesheet = objXSLT;
         
      }
      
      function search()
      {
         // Search the value of the entryfield
         var objXSLTProc = objCache.createProcessor();
         objXSLTProc.input = objSrcTree;
         // Pass the entryfield value to the xsl file
         objXSLTProc.addParameter("nameSearchValue", ORDER.value);
         
         
//result=objSrcTree.selectSingleNode("/ORDERREQUISITION/REQUISITION/ORDNBR[.='"+ORDER.value+"']")
        // if (result.length != null) { 
         // The results count of the search
        // doPopupcnt();
         objXSLTProc.transform(); 
         output.innerHTML =  objXSLTProc.output; 
        // } else { 
         // Pop up letting the user know that the search didn't find anything
        // doPopup(); 
        // objXSLTProc.transform(); 
         //output.innerHTML = objXSLTProc.output; 
                                     
        // } 

     }    
         
   </SCRIPT>
   
   <script LANGUAGE="JavaScript">
<!-- Original: Ronnie T. Moore, Editor -->
<!-- Web Site: The JavaScript Source -->

<!-- This script and many more are available free online at -->
<!-- The JavaScript Source!! http://javascript.internet.com -->

<!-- Begin
closetime = 5; // Close window after __ number of seconds?
// 0 = do not close, anything else = number of seconds

function Start(URL, WIDTH, HEIGHT) {
windowprops = "left=1,top=1,width=" + WIDTH + ",height=" + HEIGHT;
preview = window.open(URL, "preview", windowprops);
if (closetime) setTimeout("preview.close();", closetime*1000);
}

function doPopup() {
url = "NOTFOUNDORDNBR.htm";
width = 280; // width of window in pixels
height = 200; // height of window in pixels
delay = 0; // time in seconds before popup opens
timer = setTimeout("Start(url, width, height)", delay*1000);
}

function msxml4Pop() {
url = "download-msxml4.htm"; 
width = 200;
height = 300;
delay = 0; // time in seconds before popup opens
timer = setTimeout("Start(url, width, height)", delay*1000);
}

// End -->
</script>


<script LANGUAGE="JavaScript">
function doPopupcnt(){
         var 
generator=window.open('POPUPCNT.htm','name','height=5,width=425,left=1, 
top=1');
         var cntresult="Search Returned" + " " + result.length + " " + 
"Records" + " " + "for Requisition Nbr" + " " + ORDER.value;
         generator.document.write(cntresult);  
         generator.document.write('<p><a 
href="javascript:self.close()">Close</a> the popup.</p>');
         generator.document.close();
 }
 </SCRIPT>
   
<!--[if !mso]>
<style>
v\:*         { behavior: url(#default#VML) }
o\:*         { behavior: url(#default#VML) }
.shape       { behavior: url(#default#VML) }
</style>
<![endif]-->
<meta name="Microsoft Theme" content="ricepapr 0011">
<!--[if gte mso 9]>
<xml><o:shapedefaults v:ext="edit" spidmax="1027"/>
</xml><![endif]-->
</head>
<body onload="init()">
<HTML>

<head>

</head>

<body>

<!-- BEGIN JavaScript DisableRightClick (Msg Box Ver.) -->
<!-- (C)2003 USINGIT.COM, All rights reserved. -->
<!-- <script language="JavaScript1.2" 
src="js_disable_right_click_cfg.js"></script>
<script language="JavaScript1.2" src="js_disable_right_click.js"></script> -->
<!-- END JavaScript DisableRightClick (Msg Box Ver.) --> 
<SCRIPT LANGUAGE="JavaScript">

<!-- This script and many more are available free online at -->
<!-- The JavaScript Source!! http://javascript.internet.com -->

<!-- Begin
var osd = "   "
osd +="Welcome, this is a DoD web site. The security accreditation level of 
this site is Unclassified FOUO and below. Do not process, store, or transmit 
information ";
osd +="classified above the accreditation level of this system. DoD web 
sites may be monitored for all lawful purposes, including to ensure their use 
is ";
osd +="authorized, for management of the system, to facilitate protection 
against unauthorized access, and to verify security procedures, 
survivability, ";
osd +="and operational security. Monitoring includes, but is not limited to, 
active attacks by authorized DoD entities to test or verify the security of 
this ";
osd +="system. During monitoring, information may be examined, recorded, 
copied and used for authorized purposes. All information, including ";
osd +="personal information, placed on or sent over this system may be 
monitored. Use of this DoD web site, authorized or unauthorized, constitutes 
";
osd +="consent to monitoring. Unauthorized use of this DoD web site may 
subject you to criminal prosecution. Evidence of unauthorized use collected ";
osd +="during monitoring may be used for administrative, criminal or other 
adverse action.   ";
osd +="Use of this system constitutes consent to monitoring for all lawful 
purposes.";
var timer;
var msg = "";
function scrollMaster () {
msg = customDateSpring(new Date())
clearTimeout(timer)
msg += " " + showtime() + " " + osd
for (var i= 0; i < 100; i++){
msg = " " + msg;
}
scrollMe()
}
function scrollMe(){
window.status = msg;
msg = msg.substring(1, msg.length) + msg.substring(0,1);
timer = setTimeout("scrollMe()", 200);
}
function showtime (){
var now = new Date();
var hours= now.getHours();
var minutes= now.getMinutes();
var seconds= now.getSeconds();
var months= now.getMonth();
var dates= now.getDate();
var years= now.getYear();
var timeValue = ""
timeValue += ((months >9) ? "" : " ")
timeValue += ((dates >9) ? "" : " ")
timeValue = ( months +1)
timeValue +="/"+ dates
timeValue +="/"+  years
var ap="A.M."
if (hours == 12) {
ap = "P.M."
}
if (hours == 0) {
hours = 12
}
if(hours >= 13){
hours -= 12;
ap="P.M."
}
var timeValue2 = " " + hours
timeValue2 += ((minutes < 10) ? ":0":":") + minutes + " " + ap
return timeValue2;
}
function MakeArray(n) {
this.length = n
return this
}
monthNames = new MakeArray(12)
monthNames[1] = "Janurary"
monthNames[2] = "February"
monthNames[3] = "March"
monthNames[4] = "April"
monthNames[5] = "May"
monthNames[6] = "June"
monthNames[7] = "July"
monthNames[8] = "August"
monthNames[9] = "Sept."
monthNames[10] = "Oct."
monthNames[11] = "Nov."
monthNames[12] = "Dec."
daysNames = new MakeArray(7)
daysNames[1] = "Sunday"
daysNames[2] = "Monday"
daysNames[3] = "Tuesday"
daysNames[4] = "Wednesday"
daysNames[5] = "Thursday"
daysNames[6] = "Friday"
daysNames[7] = "Saturday"
function customDateSpring(oneDate) {
var theDay = daysNames[oneDate.getDay() +1]
var theDate =oneDate.getDate()
var theMonth = monthNames[oneDate.getMonth() +1]
var dayth="th"
if ((theDate == 1) || (theDate == 21) || (theDate == 31)) {
dayth="st";
}
if ((theDate == 2) || (theDate ==22)) {
dayth="nd";
}
if ((theDate== 3) || (theDate  == 23)) {
dayth="rd";
}
return theDay + ", " + theMonth + " " + theDate + dayth + ","
}
scrollMaster();
// End -->
</SCRIPT>


</body>

</HTML>

<p>

<font size="6"><b><span style="font-family: Times New 
Roman">  </span></b></font><div style="position: absolute; width: 141px; 
height: 10px; z-index: 3; left: 17px; top: 190px" id="layer3">
	<b><font size="3">
	<a href="mailto:CustomerService@u...?subject=Requisition 
Inquiry">Customer Service:</a>  </font></b></div>
<p>

<span style="font-size: 12.0pt; font-family: Times New Roman"><!--[if gte 
vml 1]><v:shapetype id="_x0000_t75"
 coordsize="21600,21600" o:spt="75" o:preferrelative="t" 
path="m@4@5l@4@11@9@11@9@5xe"
 filled="f" stroked="f">
 <v:stroke joinstyle="miter"/>
 <v:formulas>
  <v:f eqn="if lineDrawn pixelLineWidth 0"/>
  <v:f eqn="sum @0 1 0"/>
  <v:f eqn="sum 0 0 @1"/>
  <v:f eqn="prod @2 1 2"/>
  <v:f eqn="prod @3 21600 pixelWidth"/>
  <v:f eqn="prod @3 21600 pixelHeight"/>
  <v:f eqn="sum @0 0 1"/>
  <v:f eqn="prod @6 1 2"/>
  <v:f eqn="prod @7 21600 pixelWidth"/>
  <v:f eqn="sum @8 21600 0"/>
  <v:f eqn="prod @7 21600 pixelHeight"/>
  <v:f eqn="sum @10 21600 0"/>
 </v:formulas>
 <v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"/>
 <o:lock v:ext="edit" aspectratio="t"/>
</v:shapetype><v:shape id="_x0000_s1025" type="#_x0000_t75" alt="" 
style='position:absolute;
 left:9pt;top:7.5pt;width:74.25pt;height:72.75pt;z-index:0;
 mso-position-horizontal-relative:char;mso-position-vertical:absolute;
 mso-position-vertical-relative:line' stroked="t" strokecolor="white">
 <v:imagedata src="DOLWMDDREQ31_files/image001.jpg" o:title="AasaSeal"
  chromakey="#fdfdfd"/>
</v:shape><![endif]--><![if !vml]><span style='mso-ignore:vglayout;position:
absolute;z-index:0;left:11px;top:9px;width:101px;height:99px'><img width=101
height=99 src="DOLWMDDREQ31_files/image002.gif" 
v:shapes="_x0000_s1025"></span><![endif]></span><font size="6"><b><span 
style="font-family: Times New Roman"> </span>
</b></font>
<p>

<b>
<DIV>
<SPAN style="FONT-FAMILY: 'Times New Roman'"><font size="6">              
</font></SPAN></b><font size="6"><b><span style="font-family: Times New 
Roman"> 
</span></b></font>

<b><SPAN style="FONT-FAMILY: 'Times New Roman'"><font size="5"> 
 </font></SPAN></b><div style="position: absolute; width: 732px; height: 
46px; z-index: 2; left: 119px; top: 46px" id="layer2">

<img border="0" src="MAIL80A0.GIF" width="32" height="32"><font 
size="6"><b><span style="font-family: Times New Roman"> 
</span></b></font>

<b>

<SPAN style="FONT-FAMILY: 'Times New Roman'"><font size="6">DOL-W, MDD 
Requisition Tracking Program  </font></SPAN></b>

<img border="0" src="MAIL9232.GIF" width="32" height="32"></div>
</p>
</DIV
<P>
                                         
                                                            
</p>                                                                                                          <br>
<i><font 
size="-1">                                                                
</font></i>
<div style="position: absolute; width: 100px; height: 10px; z-index: 11; 
left: 403px; top: 142px" id="layer11">
	 <!--webbot bot="Validation" s-display-name="Requisition Number" 
s-data-type="String" b-value-required="TRUE" i-minimum-length="1" 
i-maximum-length="20" --><input type="text" name="ORDNBR" ID="ORDER" 
size="20" maxlength="20"></div>
<p>                                             </p>
<p>                                          
                                                        <input type="button" 
value="Search" name="B1"
	onclick=javascript:search(this.form)>       <input type="reset" 
value="Reset" name="B2"
	onclick="ORDER.value=''"></p>


<div style="position: absolute; width: 729px; height: 10px; z-index: 12; 
left: 116px; top: 95px" id="layer12" align="center">
	<a href="http://www.usapa.army.mil/usapa_home.asp">USAPA Home</a>  
	<a href="http://docs.usapa.belvoir.army.mil/ordering/store.asp">USAPA 
	Ordering </a>  
	<a href="http://www.usapa.army.mil/usapa_pub_search_p.asp">USAPA 
	Publications</a>  
	<a href="http://www.usapa.army.mil/usapa_pub_search_f.asp">USAPA Forms</a>  
	<a href="http://www.usapa.army.mil/usapa_officialSite.htm">Official Pub 
	Sites</a>  
	<a href="http://www.usapa.army.mil/usapa_externallinks.htm">Other External 
	Links</a></div>


<DIV ID="output" style="position: absolute; width: 977px; height: 40px; 
z-index: 5; left: 10px; top: 283px" ></DIV>

<b>                                    </b><div style="position: absolute; 
width: 277px; height: 24px; z-index: 4; left: 347px; top: 128px" id="layer4">
	<b>Enter Document or Requisition Number</b> </div>
<p><b>      </b></p>
<div style="position: absolute; width: 173px; height:10px; z-index: 8; left: 
796px; top: 193px" id="layer8">
	<b>
	<a 
href="http://www.fedex.com/Tracking?ascend_header=1&clienttype=dotcom&cntry_code=us&language=english&tracknumbers=">FedEx Tracking</a></b></div>
<p><b>                               
</b>
</p>
<div style="position: absolute; width: 400px; height: 34px; z-index: 5; 
left: 312px; top: 185px" id="layer5">
<i><font size="-1">Place the cursor in the text box, and type in the 
Document Number.</font></i>
<br>
 </div>
<p><b>         </b></p>
<div style="position: absolute; width: 100px; height: 10px; z-index: 9; 
left: 795px; top: 212px" id="layer9">
	<b>
	<a 
href="http://wwwapps.ups.com/WebTracking/processInputRequest?HTMLVersion=5.0">UPS Tracking</a></b></div>
<p><b>                           </b> </p>
<div style="position: absolute; width: 119px; height: 10px; z-index: 7; 
left: 17px; top: 226px" id="layer7">
	<b><font size="3">DSN:  892-0910</font></b>
</div>
<div style="position: absolute; width: 148px; height: 10px; z-index: 6; 
left: 17px; top: 209px" id="layer6">
	<b><font size="3">COM:  314-592-0910  </font></b></div>
<div style="position: absolute; width: 112px; height: 10px; z-index: 10; 
left: 795px; top: 233px" id="layer10">
	<b>
	<a 
href="http://www.usps.com/shipping/trackandconfirm.htm?from=home&page=0035trackandconfirm">USPS Tracking</a></b></div>
<p>&nbsp;</p>
<p> </p>

</body>

</html>


----XSL----

<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
<xsl:param name="nameSearchValue">HP00004262</xsl:param>
<xsl:param 
name="UPSLINK1">http://wwwapps.ups.com/WebTracking/processInputRequest?HTMLVersion=5.0&sort_by=status&tracknums_displayed=5&TypeOfInquiryNumber=T&amp;loc=en_US&InquiryNumber1=</xsl:param>
<xsl:param 
name="UPSLINK2">&InquiryNumber2=&InquiryNumber3=&InquiryNumber4=&InquiryNumber5=&AgreeToTermsAndConditions=yes&track.x=36&track.y=5</xsl:param>
<xsl:param 
name="USPSLINK1">http://www.usps.com/shipping/trackandconfirm.htm?from=home&page=0035trackandconfirm</xsl:param>
<xsl:param 
name="FEDEXLINK1">http://www.fedex.com/Tracking?ascend_header=1&clienttype=dotcom&cntry_code=us&language=english&tracknumbers=</xsl:param>
      
<xsl:template match="/">
   <HTML>
      <BODY>
         <TABLE border="10" align="left">
            <xsl:apply-templates select="/ORDERREQUISITION/REQUISITION">
               <xsl:sort select="ORDNBR"/>
               </xsl:apply-templates>
         </TABLE>
      </BODY>
   </HTML>
</xsl:template>

<xsl:template match="REQUISITION">
  <xsl:if test="ORDNBR=$nameSearchValue">
   
     <TR> 
     <TD style="font-weight:bold" bgcolor="lightblue">Received</TD>
     <TD bgcolor="white" style="font-weight:bold"> <xsl:apply-templates 
select="DATECRE" /></TD>
     
     <TD style="font-weight:bold" bgcolor="lightblue">Req Nbr</TD>
     <TD style="font-weight:bold" bgcolor="white" fgcolor="blue"> 
<xsl:apply-templates select="ORDNBR" /></TD>
     
     <TD style="font-weight:bold" bgcolor="lightblue">Cust ID</TD>
     <TD bgcolor="white" style="font-weight:bold"><xsl:apply-templates 
select="CUSTID" /></TD>
     
     <TD style="font-weight:bold" bgcolor="lightblue">Ord Qty</TD>
     <TD bgcolor="white" style="font-weight:bold"><xsl:apply-templates 
select="ORDQTY" /> </TD>
     
     <TD style="font-weight:bold" bgcolor="lightblue">Qty Denied</TD>
     <TD bgcolor="white" style="font-weight:bold"><xsl:apply-templates 
select="QTYDENIED" /></TD>
     
     <TD style="font-weight:bold" bgcolor="lightblue">Status</TD>
     <TD bgcolor="white" style="font-weight:bold"><xsl:apply-templates 
select="STATUS" /></TD>  
     </TR>     
   <TR>
       <TD style="font-weight:bold" bgcolor="lightblue">Depot</TD>
       <TD bgcolor="white" style="font-weight:bold"><xsl:apply-templates 
select="DEPOT" /></TD>
        <TD style="font-weight:bold" bgcolor="lightblue">Carrier ID</TD>
       <TD bgcolor="white" style="font-weight:bold"><xsl:apply-templates 
select="CARRIERID" /></TD>
        <TD style="font-weight:bold" bgcolor="lightblue">Carrier Mode</TD>
       <TD bgcolor="white" style="font-weight:bold"><xsl:apply-templates 
select="CARRIERMODE" /></TD>
        <TD style="font-weight:bold" bgcolor="lightblue">Ship Qty</TD>
       <TD bgcolor="white" style="font-weight:bold"><xsl:apply-templates 
select="SHIPQTY" /></TD> 
      <TD style="font-weight:bold" bgcolor="lightblue">Ship Date</TD>
       <TD bgcolor="white" style="font-weight:bold"><xsl:apply-templates 
select="SHIPDATE" /></TD>
        <TD style="font-weight:bold" bgcolor="lightblue">Trk Code</TD>
       <TD style="font-weight:bold" bgcolor="white"><xsl:apply-templates 
select="TRKCODE" /></TD>
     </TR> 
     <TR>
     </TR>
     <TR>
     </TR>
   </xsl:if>

</xsl:template>

<xsl:template match="DATECRE">
        <SPAN><xsl:value-of select="."/></SPAN>
        
        </xsl:template>

<xsl:template match="SHIPQTY">
  <SPAN><xsl:value-of select="."/></SPAN>
</xsl:template>

<xsl:template match="ORDNBR">
        <SPAN><xsl:value-of select="."/></SPAN>
</xsl:template>

<xsl:template match="SHIPDATE">
 <SPAN><xsl:value-of select="."/></SPAN>
</xsl:template>

<xsl:template match="CUSTID">
<SPAN><xsl:value-of select="."/></SPAN>
</xsl:template>

<xsl:template match="DEPOT">
  <SPAN><xsl:value-of select="."/></SPAN>
</xsl:template>

<xsl:template match="ORDQTY">
  <SPAN><xsl:value-of select="."/></SPAN>
</xsl:template>

<xsl:template match="CARRIERID">
  <SPAN><xsl:value-of select="."/></SPAN>
</xsl:template>

<xsl:template match="QTYDENIED">
 <SPAN><xsl:value-of select="."/></SPAN>
</xsl:template>

<xsl:template match="CARRIERMODE">
 <SPAN><xsl:value-of select="."/></SPAN>
</xsl:template>

<xsl:template match="STATUS">
  <SPAN><xsl:value-of select="."/></SPAN>
</xsl:template>

<xsl:template match="TRKCODE">
<xsl:if test="starts-with(text(), '1Z')">
 <SPAN><a> 
<xsl:attribute name="href"> 
<xsl:value-of select="$UPSLINK1"/><xsl:value-of 
select="text()"/><xsl:value-of select="$UPSLINK2"/> 
</xsl:attribute> 
<xsl:value-of select="." /> 
</a> </SPAN>

</xsl:if>

<xsl:if test="starts-with(text(), '000')">
<SPAN><a> 
<xsl:attribute name="href"> 
<xsl:value-of select="$USPSLINK1"/>
</xsl:attribute> 
<xsl:value-of select="." /> 
</a> </SPAN>
</xsl:if>
  
<xsl:if test="starts-with(text(), '79')">
<SPAN><a> 
<xsl:attribute name="href"> 
<xsl:value-of select="$FEDEXLINK1"/><xsl:value-of select="text()"/>
</xsl:attribute> 
<xsl:value-of select="." /> 
</a> </SPAN>
</xsl:if>
 </xsl:template>
 
</xsl:stylesheet>


----XML--_

<?xml version="1.0"?>
<ORDERREQUISITION>
<REQUISITION>
<DATECRE>10/26/04</DATECRE>
<ORDNBR>2004196002663</ORDNBR>
<CUSTID>A0016</CUSTID>
<ORDQTY>1</ORDQTY>
<QTYDENIED>0</QTYDENIED>
<STATUS>SHIPPED!</STATUS>
<SHIPQTY>1</SHIPQTY>
<SHIPDATE>10/29/04</SHIPDATE>
<DEPOT>STLMO</DEPOT>
<CARRIERID>4SP</CARRIERID>
<CARRIERMODE>Special Std (Media Mail)</CARRIERMODE>
<TRKCODE>00082923329#</TRKCODE>
</REQUISITION>
</ORDERREQUISITION>



transparent
Print
Mail
Like It
Disclaimer
.

These Archives are provided for informational purposes only and have been generated directly from the Altova mailing list archive system and are comprised of the lists set forth on www.altova.com/list/index.html. Therefore, Altova does not warrant or guarantee the accuracy, reliability, completeness, usefulness, non-infringement of intellectual property rights, or quality of any content on the Altova Mailing List Archive(s), regardless of who originates that content. You expressly understand and agree that you bear all risks associated with using or relying on that content. Altova will not be liable or responsible in any way for any content posted including, but not limited to, any errors or omissions in content, or for any losses or damage of any kind incurred as a result of the use of or reliance on any content. This disclaimer and limitation on liability is in addition to the disclaimers and limitations contained in the Website Terms of Use and elsewhere on the site.

.
.

transparent

transparent