xslt.Load(New XmlTextReader(New StringReader(xslt)))" xslt compile error"

时间:2012-12-02 19:21:58

标签: vb.net

我已阅读其他帖子,但他们没有解决我的问题。 环境是VB 2008(2.0框架) 以下代码会导致XSLT Compile errorxslt.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行

1 个答案:

答案 0 :(得分:0)

存储在sXSLT中的XSLT脚本可能包含<xsl:include><xsl:import>元素,该元素尝试在H:\Program Files\common\tr_period.xsl包含/导入另一个XSLT脚本文件。由于该文件不存在或无法访问,因此转换失败。