Das Notes Forum

Domino 9 und frühere Versionen => ND7: Entwicklung => Thema gestartet von: MichaStg29 am 17.02.09 - 13:13:55

Titel: xsl-Datei zur Umwandlung Notes XML nach HTML (Inline-Grafik)
Beitrag von: MichaStg29 am 17.02.09 - 13:13:55
Hi,

gibt es eine allgemeingültige XSL-Datei zur Umwandlung von Notes-XML-Dateien nach HTML ?

Es sollen eingefügte Bilder in Notes-RFT-Feldern die in der xml-exprotdatei als base64-Format vorliegen im HTML als Inline-Bild erscheinen.

Der Tag im HTML müsste so aussehen:

img alt="Bild" src="data:image/gif;base64,bilddaten...
" width="155" height="197"


Mir ist unklar wie das Tag in der xsl-Datei die der NotesXSLTransformer für die Umwandlung benutzt
aussehen muss.

Folgende Formatierung in XSL tut nicht:


xsl:template match="picture"

      xsl:element name="img"

         xsl:attribute name="height"><xsl:value-of select="@height"/></xsl:attribute

         xsl:attribute name="width"><xsl:value-of select="@width"/></xsl:attribute

         xsl:attribute name="src">data:<xsl:value-of select="@type"/>;base64,xsl:value-of select="."/></xsl:attribute

/xsl:element

   </xsl:template>

Wer kann mir da weiterhelfen ?
Titel: Re: xsl-Datei zur Umwandlung Notes XML nach HTML (Inline-Grafik)
Beitrag von: koehlerbv am 17.02.09 - 13:18:43
Man sollte sich auch mit diesem Thread im DominoForum (http://www.dominoforum.de/modules/newbb/viewtopic.php?topic_id=19892&forum=48&post_id=114965#forumpost114965) auseinandersetzen - wer denn zwei Foren beobachten möchte, um ein Problem zu lösen.

Bernhard
Titel: Re: xsl-Datei zur Umwandlung Notes XML nach HTML (Inline-Grafik)
Beitrag von: pram am 19.02.09 - 09:01:26
Zitat
Es sollen eingefügte Bilder in Notes-RFT-Feldern die in der xml-exprotdatei als base64-Format vorliegen im HTML als Inline-Bild erscheinen.
Wir erstellen daraus ein NotesMimeEntity. Dabei läuft das DXL zuerst durch einen SAX-Parser, dieser generiert für jedes Bild ein MIME-Attachment und ersetzt anschließend einen entsprechenden Referenztag.

Sax-Parser erzeugt Attachment mittels:
Code
Set mimeData   =  session.CreateStream()
Call mimeData.WriteText(base64content) ' Image-Content aus dem DXL
embedCount = embedCount + 1 ' Bilder werden der Reihe nach durchnummeriert
Call mimePart.SetContentFromText(mimeData, "image/" +imagetype, ENC_BASE64)
Call mimePart.CreateHeader("Content-ID").SetheaderVal("<embed" +Cstr(embedCount)+ "@meinedomain>")

Im HTML-Body des Mime's kann man dann mittels <img src="cid:embed1@meinedomain"> auf das Bild referenzieren.
Diese Mime-Felder werden auch korrekt im Web dargestellt.

Gruß
Roland