![]() |
![]() | ![]() | ![]() | Altova Mailing List Archives>Archive Index >microsoft.public.xml Archive Home >Recent entries >Thread Prev - RE: msxml3.dll (0x8007000E) >Thread Next - RE: msxml3.dll (0x8007000E) RE: msxml3.dll (0x8007000E)To: NULL Date: 1/3/2005 5:09:00 AM How can you setup msxml4 just to test on IE and try it out? Please let me know. Thanks a lot. "rdcpro" wrote: > It's incorrect because you don't have a template that matches Billing_date. > The apply-templates looks like: > > <xsl:apply-templates select="Billing_date" /> > > But the template you have looks like: > > <xsl:template match="Billing_end_date"> > <td class="standardText"> > <xsl:value-of select="myprefix:formatDate(string(.))" /> > </td> > </xsl:template> > > It's hard to tell what your XML looks like, but I would think there's a more > efficient method of processing in the XSLT. If MSXML can parse the XML, and > the out of memory error is occurring during the transformation, you might > pick up a bit here. > > But unless your IE client machines are pretty robust, I suspect you're not > going to be able to do this client-side. I believe your XML document is way > too big. My main dev machine could probably handle an XML document that big, > but it has 2 GB of memory, but most clients aren't going to have anywhere > near that much RAM. Even if it did handle a document that size in DOM, it's > going to take a long time to process. > > I would seriously consider a solution that involves paging of the data from > the query, if it can meet your requirements for the data. > > If that won't work, you'll have to use the SAX API of MSXML 3, and do the > processing that way. > > http://msdn.microsoft.com/msdnmag/issues/1100/xml/ > > I've never tried this on the client, though. You may still run into > troubles with extremely large documents. > > Regards, > Mike Sharp > > "JZYCN2" wrote: > > > Why do you think the following is incorrect? > > > > <xsl:when test="node()='Billing_end_date'"> > > <xsl:apply-templates select="Billing_date"/> > > </xsl:when> > > > > Because whenever it hits the billing_end_date node, then it should apply the > > biling_date template. Then please advise the right way of doing this. The > > XML is created from database through query and I don't know how big it is and > > also it is at the client side IE. If anyone can help can be greatly > > appreciated. Thanks in advance. > > > > "rdcpro" wrote: > > > > > Well, I don't seen anything too weird in the XSLT, though I don't really see > > > the reason for that large xsl:choose structure, and there's probably a much > > > more efficient way of doing it. Also, this appears to be incorrect: > > > > > > <xsl:when test="node()='Billing_end_date'"> > > > <xsl:apply-templates select="Billing_date"/> > > > </xsl:when> > > > > > > > > > How big, in megabytes, is that XML? It's entirely possible that MSXML 4 > > > will handle this better. If it doesn't, you'll probably have to use the SAX > > > API to process this, or else you'll have to break up the XML into chunks that > > > are easier to manage. > > > > > > Are you by any chance doing this client-side in IE? If so, then your memory > > > constrains are probably even tighter, because IE has to render that huge > > > thing as well. Sounds like a job for a paging interface. > > > > > > I think, but can't really say for sure, that you can handle much larger XML > > > documents in .NET than you can with MSXML, because you can use a stream based > > > parser to read the XML. It still generates an in-memory representation of > > > the data, but I believe the memory footprint is lower. Anyone else out there > > > know for sure? > > > > > > > > > Regards, > > > Mike Sharp > > > > > > "JZYCN2" wrote: > > > > > > > My xslt file is not big and I can attach that. However, XML file might be > > > > extremely big 86k rows of data has lots of fields. So by using different > > > > version of msxml may help to resolve this problem? > > > > > > > > My xslt file: > > > > > > > > - <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > > > > xmlns:msxsl="urn:schemas-microsoft-com:xslt" > > > > xmlns:myprefix="http://www.captionkit.com/namespaces" version="1.0"> > > > > <xsl:output method="html" /> > > > > - <xsl:template match="/"> > > > > - <xsl:if test="count(root/gmol) > 65530"> > > > > <H5>Warning: First 65,530 records were imported into Excel.</H5> > > > > </xsl:if> > > > > - <table border="1" width="100%"> > > > > - <xsl:for-each select="/root/gmol"> > > > > - <tr> > > > > - <xsl:choose> > > > > - <xsl:when test="node()='Billing_end_date'"> > > > > <xsl:apply-templates select="Billing_date" /> > > > > </xsl:when> > > > > - <xsl:when test="node()='Notification_Date'"> > > > > <xsl:apply-templates select="Notification_Date" /> > > > > </xsl:when> > > > > - <xsl:when test="node()='Comment_Date'"> > > > > <xsl:apply-templates select="Comment_Date" /> > > > > </xsl:when> > > > > - <xsl:when test="node()='GRS_Date'"> > > > > <xsl:apply-templates select="GRS_Date" /> > > > > </xsl:when> > > > > - <xsl:when test="node()='last_scan_date'"> > > > > <xsl:apply-templates select="last_scan_date" /> > > > > </xsl:when> > > > > - <xsl:otherwise> > > > > <xsl:apply-templates select="*" /> > > > > </xsl:otherwise> > > > > </xsl:choose> > > > > </tr> > > > > </xsl:for-each> > > > > </table> > > > > </xsl:template> > > > > - <xsl:template match="*"> > > > > - <td class="standardText"> > > > > - <xsl:choose> > > > > <xsl:when test=". = ' ' or . = ''"> </xsl:when> > > > > - <xsl:otherwise> > > > > <xsl:value-of select="." /> > > > > </xsl:otherwise> > > > > </xsl:choose> > > > > </td> > > > > </xsl:template> > > > > - <xsl:template match="Billing_end_date"> > > > > - <td class="standardText"> > > > > <xsl:value-of select="myprefix:formatDate(string(.))" /> > > > > </td> > > > > </xsl:template> > > > > - <xsl:template match="Notification_Date"> > > > > - <td class="standardText"> > > > > <xsl:value-of select="myprefix:formatDate(string(.))" /> > > > > </td> > > > > </xsl:template> > > > > - <xsl:template match="Comment_Date"> > > > > - <td class="standardText"> > > > > <xsl:value-of select="myprefix:formatDate(string(.))" /> > > > > </td> > > > > </xsl:template> > > > > - <xsl:template match="GRS_Date"> > > > > - <td class="standardText"> > > > > <xsl:value-of select="myprefix:formatDate(string(.))" /> > > > > </td> > > > > </xsl:template> > > > > - <xsl:template match="last_scan_date"> > > > > - <td class="standardText"> > > > > <xsl:value-of select="myprefix:formatDate(string(.))" /> > > > > </td> > > > > </xsl:template> > > > > - <msxsl:script language="javascript" implements-prefix="myprefix"> > > > > - <![CDATA[ > > > > function formatDate(myDate) > > > > { > > > > var finalDate= ""; > > > > var dateStr = new Date(myDate); //.item(0).text; > > > > > > > > if(isNaN(myDate)) > > > > { > > > > > > > > finalDate = ((dateStr.getMonth()+1) + "/" + dateStr.getDate() + "/" + > > > > dateStr.getFullYear()) > > > > return (finalDate) > > > > } > > > > else > > > > { > > > > return (" ") > > > > } > > > > } > > > > > > > > > > > > ]]> > > > > </msxsl:script> > > > > </xsl:stylesheet> > > > > > > > > > > > > > > > > > > > > "rdcpro" wrote: > > > > > > > > > How big is the XML in KB? What's the biggest it could reasonably be? 86k > > > > > rows means this is probably a pretty big file, and it's possible you're > > > > > simply out of memory. If the XML isn't simply too big, there are a number of > > > > > techniques you can use in the XSLT to reduce the working set. You may have > > > > > to post some or all of your XSLT. > > > > > > > > > > Regards, > > > > > Mike Sharp > > > > > > > > > > "JZYCN2" wrote: > > > > > > > > > > > We have the following probblem: > > > > > > When we return about 86K rows of data using xml and xslt, it gives us the > > > > > > following message: > > > > > > Error Type: > > > > > > msxml3.dll (0x8007000E) > > > > > > Not enough storage is available to complete this operation. > > > > > > > > > > > > Can any one help? Thanks a milllion in advance. | ![]() | ![]() | ![]() |
| Company | Legal | Press | Partners | Careers | Sitemap | Contact Us | Altova Blog | |||||
|
