Hallo,
ich habe ein Problem mit NotesXSLTransformer.
Ich habe eine XML-Datei und eine XSL-Datei und möchte nun beide mit NotesXSLTransformer verarbeiten.
Leider erhalte ich immer die Fehlermeldung "XSLTransformer input object is invalid, uninitialized, or not explicitly declared and strongly typed".
Hat vielleicht jemand eine Idee was hier falsch läuft? Seh ich den Wald vor lauter Bäumen nicht?
Schon mal vielen Dank für Eure Hilfe.
Gruß Thorsten
P.S. das ganze läuft auf einem SLES
P.P.S "dbg" ist mein Debugger der mir einfach den Inhalt der übergebenen Variable oder Klasse auf die Konsole ausgibt - ist aber in diesem Fall auskommentiert
Mein Programm sieht folgendemaßen aus:
Sub Initialize
On Error GoTo errHandle
Dim session As New NotesSession
Dim filename As String
Dim pfad As String
Dim XML_in As NotesStream ' input file
Dim XSL_ss As NotesStream ' style sheet
Dim XML_out As NotesStream ' output file
Dim transformer As NotesXSLTransformer
filename = "test"
pfad = "/local/notesdata/test/html/files/"
Set XML_in=session.CreateStream
If Not XML_in.Open(pfad + filename + ".xml") Then
MessageBox ("Datei " + filename+ + ".xml konnte nicht geöffnet werden")
Exit Sub
End If
If XML_in.Bytes = 0 Then
MessageBox (filename + ".XML existiert nicht oder ist leer")
Exit Sub
End If
' Call dbg(Left(XML_in.Readtext(),8000))
Set XSL_ss=session.CreateStream
If Not XSL_ss.Open(pfad + filename$ + ".xsl") Then
MessageBox ("Datei " + filename+ + ".xsl konnte nicht geöffnet werden")
Exit Sub
End If
' Call dbg(Left(XSL_ss.Readtext(),8000))
Set XML_out=session.CreateStream
If Not XML_out.Open(pfad + filename$ + ".txt") Then
MessageBox ("Datei " + filename+ + ".txt konnte nicht geöffnet werden")
Exit Sub
End If
XML_out.Truncate
Set transformer=session.CreateXSLTransformer(XML_in, XSL_ss, XML_out)
transformer.Process 'Dies ist Zeile 41 in der der Fehler auftritt
Exit Sub
errHandle:
MessageBox( "Error:" + CStr(Error) + " in Zeile - " + CStr(Erl))
Exit sub
End Sub
Alles anzeigen
Wenn ich das Programm mit Daten laufen lasse, die ich zuvor erfolgreich in Oxygen getestet habe erhalte ich immer folgende Fehlermeldung:
Error:XSLTransformer input object is invalid, uninitialized, or not explicitly declared and strongly typed in Zeile - 41
Die Ausgangsdaten sehen folgendemaßen aus:
test.xml
<?xml version='1.0'?>
<database xmlns='http://www.lotus.com/dxl' version='9.0' maintenanceversion='1.10' replicaid='C12583F70022827B' path='Test.nsf' title='test' increasemaxfields='true' defaultlanguage='de'>
<databaseinfo dbid='C12583F70022827B' odsversion='43' diskspace='27000832'
percentused='65.7141231796117' numberofdocuments='793'><datamodified><datetime
>20200122T133000,58+01</datetime></datamodified><designmodified><datetime
>20200120T172701,36+01</datetime></designmodified></databaseinfo>
<fulltextsettings size='3454093' update='immediate' unindexeddocumentcount='1'
includeencryptedfields='false' breakat='wordssentencesparagraphs'><lastindexed
><datetime>20200122T104001,78+00</datetime></lastindexed></fulltextsettings>
<launchsettings><noteslaunch whenopened='openframeset' frameset='Konfiguration'/></launchsettings>
<profiledocument name='settings'>
</profiledocument>
<document form='webpage'>
</document>
<document form='Webpage'>
</document>
<document form='Webpage'>
</document>
<document form='Webpage'>
</document>
<document form='Webpage'>
</document>
<document form='Webpage'>
</document>
<document form='Webpage'>
</document>
<document form='Webpage'>
</document>
<document form='News'>
</document>
<document form='News'>
</document>
<document form='savefile'>
</document>
<document form='savefile'>
</document>
<document form='NewsComment'>
</document>
<document form='NewsComment'>
</document>
<document form='News'>
</document>
<document form='News'>
</document>
<document form='News'>
</document>
<document form='News'>
</document>
<document form='News'>
</document>
<document form='News'>
</document>
<document form='News'>
</document>
<document form='savefile'>
</document>
<document form='Webpage'>
</document>
<document form='faq'>
</document>
<document form='faq'>
</document>
<document form='Fragmente'>
</document>
<document form='Fragmente'>
</document>
</database>
Alles anzeigen
test.xsl
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:dxl="http://www.lotus.com/dxl">
<xsl:output method="xml" encoding="utf-8" indent="no"/>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="dxl:database/dxl:profiledocument" >
P:<xsl:value-of select="@name"/>
</xsl:template>
<xsl:template match="dxl:database/dxl:document">
D:<xsl:value-of select="@form"/>
</xsl:template>
<xsl:template match="dxl:database/dxl:databaseinfo"/>
<xsl:template match="dxl:database/dxl:fulltextsettings"/>
<xsl:template match="dxl:database/dxl:launchsettings"/>
</xsl:stylesheet>
Alles anzeigen
Das Ergebnis in Oxygen sieht folgend aus:
<?xml version="1.0" encoding="utf-8"?><database xmlns="http://www.lotus.com/dxl" version="9.0" maintenanceversion="1.10" replicaid="C12583F70022827B" path="Test.nsf" title="test" increasemaxfields="true" defaultlanguage="de">
P:settings
D:webpage
D:Webpage
D:Webpage
D:Webpage
D:Webpage
D:Webpage
D:Webpage
D:Webpage
D:News
D:News
D:savefile
D:savefile
D:NewsComment
D:NewsComment
D:News
D:News
D:News
D:News
D:News
D:News
D:News
D:savefile
D:Webpage
D:faq
D:faq
D:Fragmente
D:Fragmente
</database>
Alles anzeigen