[Home] [By Thread] [By Date] [Recent Entries]
Hi List,
Hope this is an "in Scope" question. I'm using Saxon to run a process in .net. The basic scenario is my xslt takes an XML called new, compares it to an XML document called old. Then the "new" XML document is copied over "old". The problem is when the copy happens I get the dreaded "The process cannot access the file 'L:\file_path\old.xml' because it is being used by another process". The call: Dim x As New Saxon x.Transform(strDir & "my.xsl", strDir & "new.xml", strRepository & "difference.xml") x = Nothing ' Error occurs here File.Copy(strDir & "Stat.xml", strDir & "stat_old.xml", True)
Public Sub Transform(ByVal xslDoc As String, ByVal xmlDoc As String, _
ByVal output As String)
Try
u = New Uri(xslDoc) transformer = _
processor.NewXsltCompiler().Compile(u).Load()
Catch ex As Exception
u = Nothing
MsgBox("Exception" & ex.ToString)
MsgBox(ex.StackTrace)
Throw New Exception(ex.Message)
End Try 'Set the root node of the source document to be the
initial context node
transformer.InitialContextNode = input 'Create the serializer
Dim serializer As New Serializer
Dim fi As FileStream
Try
fi = New FileStream(output, FileMode.Create, FileAccess.Write)
serializer.SetOutputStream(fi)
'Transform the source XML
transformer.Run(serializer)
'fi.Flush()
'fi.Dispose()
fi.Close()
Catch ex As Exception
Throw New Exception(ex.Message)
Finally
u = Nothing
serializer = Nothing
transformer = Nothing
processor = Nothing
input = Nothing
fi = Nothing
End TryEnd Sub Thanks for any help.. Spencer
|

Cart



