我已阅读其他帖子,但他们没有解决我的问题。
环境是VB 2008(2.0框架)
以下代码会导致XSLT Compile error
行xslt.Load
下面是错误的输出。我将XSLT作为字符串传递,因此不确定为什么我会收到错误。
Public Function xFrmTlogs(ByVal sXLST As String, ByVal sXML As String) As String
Dim xslt As New XslCompiledTransform()
Dim HTMLoutput As String
Dim writer As New StringWriter()
Try
xslt.Load(New XmlTextReader(New StringReader(sXLST.ToString)))
Catch ex As Exception
xFrmTlogs = ex.ToString
End Try
Dim sourceReader As System.Xml.XmlReader = System.Xml.XmlReader.Create(New System.IO.StringReader(sXML))
Try
xslt.Transform(sourceReader, Nothing, writer)
Catch ex As Exception
xFrmTlogs = ex.ToString
End Try
HTMLoutput = writer.ToString()
writer.Close()
xFrmTlogs = HTMLoutput
End Function
System.Xml.Xsl.XslLoadException:XSLT编译错误。在(3,2)发生错误。 --- System.IO.DirectoryNotFoundException:找不到路径'H:\ Program的一部分 FILES \ COMMON \ tr_period.xsl”。 在System.IO .__ Error.WinIOError(Int32 errorCode,String maybeFullPath) 在System.IO.FileStream.Init(字符串路径,FileMode模式,FileAccess访问,Int32 权限,布尔值useRights,FileShare共享,Int32 bufferSize,FileOptions选项, SECURITY_ATTRIBUTES secAttrs,String msgPath,Boolean bFromProxy) 在System.IO.FileStream..ctor(字符串路径,FileMode模式,FileAccess访问,FileShare 分享,Int32 bufferSize) 在System.Xml.XmlDownloadManager.GetStream(Uri uri,ICredentials凭据) 在System.Xml.XmlUrlResolver.GetEntity(Uri absoluteUri,String role,Type ofObjectToReturn) 在System.Xml.Xsl.Xslt.XsltLoader.CreateReader(Uri uri,XmlResolver xmlResolver) 在System.Xml.Xsl.Xslt.XsltLoader.LoadStylesheet(Uri uri,Boolean include) 在System.Xml.Xsl.Xslt.XsltLoader.LoadInclude() 在System.Xml.Xsl.Xslt.XsltLoader.LoadRealStylesheet() 在System.Xml.Xsl.Xslt.XsltLoader.LoadDocument() 在System.Xml.Xsl.Xslt.XsltLoader.LoadStylesheet(XmlReader reader,Boolean include) ---内部异常堆栈跟踪结束--- 在System.Xml.Xsl.Xslt.XsltLoader.LoadStylesheet(XmlReader reader,Boolean include) 在System.Xml.Xsl.Xslt.XsltLoader.Load(编译器编译器,对象样式表,XmlResolver) 的XmlResolver) 在System.Xml.Xsl.Xslt.Compiler.Compile(对象样式表,XmlResolver xmlResolver, QilExpression&安培; QIL) 在System.Xml.Xsl.XslCompiledTransform.CompileXsltToQil(对象样式表,XsltSettings) 设置,XmlResolver stylesheetResolver) 在System.Xml.Xsl.XslCompiledTransform.LoadInternal(对象样式表,XsltSettings) 设置,XmlResolver stylesheetResolver) 在System.Xml.Xsl.XslCompiledTransform.Load(XmlReader样式表) 在H:\ Documents中的VfiSapphire.COMWrapper.xFrmTlogs(String sXLST,String sXML) Settings \ xxx \ My Documents \ Visual Studio2008 \ ProgramName \ ModuleName \ PdkBo.vb:第709行
答案 0 :(得分:0)
存储在sXSLT
中的XSLT脚本可能包含<xsl:include>
或<xsl:import>
元素,该元素尝试在H:\Program Files\common\tr_period.xsl
包含/导入另一个XSLT脚本文件。由于该文件不存在或无法访问,因此转换失败。