xslt2トランスフォームエンジンをsaxon 9.xでセットアップしました。大きなxmlファイルに大きなxsl変換ファイルがあります。私はXQSharp XSLT2エンジンで変換することができますが、サクソンと、私はエラーを取得しています:Saxon 9.xの詳細なエラーの説明を網で入手しよう
javax.xml.transform.TransformerConfigurationException: Failed to compile stylesheet. 1 error detected.
私は、エラーの行番号と原因例えばとサクソンからいくつかのより詳細なエラー情報を取得したいと思います。私が見つけたことができる唯一の2つの例外があります:
- Saxon.Api.DynamicError
- Saxon.Api.StaticError
しかし、彼らがスローされていません。どのように詳細なエラーの表記を取得するには?デフォルトのコンパイルエラーメッセージによって
<WebMethod()> _
Public Function XSLTSaxon(ByVal inputXml As String, ByVal inputXsl As String) As String
Dim response As String = ""
Try
' Create a Processor instance.
Dim processor As New Processor()
' Create xml reader based on xml string
Dim xmlReader As XmlReader = xmlReader.Create(New StringReader(inputXml))
' Load the source document.
Dim input As XdmNode = processor.NewDocumentBuilder().Build(xmlReader)
' Create a transformer for the stylesheet.
Dim transformer As XsltTransformer = processor.NewXsltCompiler.Compile(New StringReader(inputXsl)).Load()
' Set the root node of the source document to be the initial context node.
transformer.InitialContextNode = input
' Create a serializer.
Dim serializer As New Serializer()
Dim result As Stream = New MemoryStream()
serializer.SetOutputStream(result)
transformer.Run(serializer)
result.Position = 0
Using reader As StreamReader = New StreamReader(result)
response = reader.ReadToEnd()
End Using
Catch ex As Saxon.Api.DynamicError
response = String.Format("<error>dynamicerror</error>", ex.ToString)
Catch ex As Saxon.Api.StaticError
response = String.Format("<error>staticerror</error>", ex.ToString)
Catch ex As Exception
response = String.Format("<error>{0}</error>", ex.ToString)
End Try
Return response
End Function
エラーリストがトリックでした。ありがとう – MLewi