This is a discussion on Large XML File Processing with XSLT & SAXWriter fails - XML SOAP ; hello, I am trying to process a multi megabyte xml file, and returning a (long) string transformed from the XSLT processor. With about a million rows (one column of data only), I get the results back and everything works out ...
hello,
I am trying to process a multi megabyte xml file, and returning a
(long) string transformed from the XSLT processor. With about a
million rows (one column of data only), I get the results back and
everything works out ok. But if I try to parse more than that, the DLL
fails with an error of "object doesn't support this property or
method" (not exact words).
It seems to be memory related, since sometimes it would work, other
times it would fail. the DLL I created was written in VB6 and is
called from classic ASP. This is a snippet of the code:
Dim oXSL, oXSLTemplate, oXMLWriter, oXSLProc, iCounter,
oSAXReader, contentHandler, errorHandler, dtdHandler, oSAXWriter
On Error Resume Next
Set oXSL = New MSXML2.FreeThreadedDOMDocument60
If Err.Number <> 0 Then
Convert_DOM_to_SAX = Err.Number & " " & Err.Description &
"-1"
Exit Function
End If
Set oXSLTemplate = New MSXML2.XSLTemplate60
If Err.Number <> 0 Then
Convert_DOM_to_SAX = Err.Number & " " & Err.Description &
"-2"
Exit Function
End If
Set oXMLWriter = New MSXML2.MXXMLWriter60
If Err.Number <> 0 Then
Convert_DOM_to_SAX = Err.Number & " " & Err.Description &
"-3"
Exit Function
End If
oXMLWriter.omitXMLDeclaration = False
If Err.Number <> 0 Then
Convert_DOM_to_SAX = Err.Number & " " & Err.Description &
"-4"
Exit Function
End If
oXSL.async = False
If Err.Number <> 0 Then
Convert_DOM_to_SAX = Err.Number & " " & Err.Description &
"-5"
Exit Function
End If
oXSL.loadXML sRowsetXSL
If Err.Number <> 0 Then
Convert_DOM_to_SAX = Err.Number & " " & Err.Description &
"-6"
Exit Function
End If
Set oXSLTemplate.stylesheet = oXSL
If Err.Number <> 0 Then
Convert_DOM_to_SAX = Err.Number & " " & Err.Description &
"-7" & sRowsetXSL
Exit Function
End If
Set oXSLProc = oXSLTemplate.createProcessor
If Err.Number <> 0 Then
Convert_DOM_to_SAX = Err.Number & " " & Err.Description &
"-8"
Exit Function
End If
oXSLProc.input = oSAXWriter
If Err.Number <> 0 Then
Convert_DOM_to_SAX = Err.Number & " " & Err.Description &
"-9"
Exit Function
End If
oXSLProc.addParameter "maxRows", sMaxRows
If Err.Number <> 0 Then
Convert_DOM_to_SAX = Err.Number & " " & Err.Description &
"-10"
Exit Function
End If
oXSLProc.output = oXMLWriter
If Err.Number <> 0 Then
Convert_DOM_to_SAX = Err.Number & " " & Err.Description &
"-11"
Exit Function
End If
oXSLProc.Transform
If Err.Number <> 0 Then
Convert_DOM_to_SAX = Err.Number & " " & Err.Description &
"-12"
Exit Function
End If
'Convert_DOM_to_SAX = "original data: " & oXMLDOM.xml & "new
data: " & oXMLWriter.output
Convert_DOM_to_SAX = oXMLWriter.output
If Err.Number <> 0 Then
Convert_DOM_to_SAX = Err.Number & " " & Err.Description &
"-13"
Exit Function
End If
Set oXSL = Nothing
If Err.Number <> 0 Then
Convert_DOM_to_SAX = Err.Number & " " & Err.Description &
"-14"
Exit Function
End If
Set oXSLTemplate = Nothing
If Err.Number <> 0 Then
Convert_DOM_to_SAX = Err.Number & " " & Err.Description &
"-15"
Exit Function
End If
Set oXMLWriter = Nothing
If Err.Number <> 0 Then
Convert_DOM_to_SAX = Err.Number & " " & Err.Description &
"-16"
Exit Function
End If
with error trapping turned on, it dies at "-13", so I'm assuming it's
trying to get the output from the xmlwriter object.
Any help would be appreciated!
thanks
Lawrence