AW: XML vs. XSL Processor MSXML
@delphi.Narium
Aus deiner Antwort entnehme ich das du weißt was nicht stimmt. Das Statement "..würde es funktionieren" deutet jedenfalls daraufhin. Ich kann jedenfalls keinen Fehler entdecken der den XSL Processor zu diesem Verhalten "inspiriert". creehawk |
AW: XML vs. XSL Processor MSXML
Zitat:
Zitat:
Zitat:
Man kann natürlich auch einfach meinen, das das "Nonsens" oder "kompletter Mist" ist oder einfach fragen warum das so ist und was man dagegen tun kann. Deine Entscheidung. |
AW: XML vs. XSL Processor MSXML
Aha.
Ich werde also an meiner Ausdrucksweise feilen. Was das eigentliche Problem mit den Images und dem Processor angeht habe ich eine Lösung bekommen. Besten Dank jedenfalls. creehawk |
AW: XML vs. XSL Processor MSXML
Damit zukünftige Leser hier nicht mit leeren Händen wieder gehen müssen, hier eine Lösung
Delphi-Quellcode:
Verwendet habe ich dabei als XmlFile
uses
Winapi.msxml, Winapi.ActiveX, System.SysUtils, System.IOUtils; var xmlDoc, xslStyle: IXMLDOMDocument; html: string; begin xmlDoc := CoDOMDocument.Create; xmlDoc.Load(XmlFile); xslStyle := CoDOMDocument.Create; xslStyle.Load(TransFile); html := xmlDoc.TransformNode(xslStyle); TFile.WriteAllText(OutFile, html); end;
XML-Code:
und als Stylesheet (html.xsl)
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="html.xsl" type="text/xsl"?> <Personaldaten> <Arbeitnehmer> <PersNr>0000210</PersNr> <Anrede>Frau</Anrede> <Vorname>Annelene</Vorname> <Nachname>Freyär</Nachname> <Strasse>HennebergerStrasse 38</Strasse> <Postleitzahl>38512</Postleitzahl> <Ort>Son'schied</Ort> <Foto>../DAT/JPG/Frau_1.jpg</Foto> </Arbeitnehmer> </Personaldaten>
XML-Code:
und erhalte
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html" version="1.0" encoding="UTF-8" indent="yes"/> <xsl:template match="/"> <html> <head> <META http-equiv="Content-Type" content="text/html; charset=UTF-8"/> </head> <body> <h2>Personaldaten</h2> <xsl:for-each select="Personaldaten/Arbeitnehmer"> <xsl:variable name="Bild"> <xsl:value-of select="Foto"/> </xsl:variable> <img src="{$Bild}" style="border: 1px solid white" alt="Personalbild" align="left"/> <p> <xsl:value-of select="PersNr"/> </p> <p> <xsl:value-of select="Anrede"/> </p> <p> <xsl:value-of select="concat(Vorname,' ',Nachname)"/> </p> <p> <xsl:value-of select="Strasse"/> </p> <p> <xsl:value-of select="concat(Postleitzahl,' ',Ort)"/> </p> </xsl:for-each> </body> </html> </xsl:template> </xsl:stylesheet>
HTML-Code:
<html>
<head> <META http-equiv="Content-Type" content="text/html; charset=UTF-16"> <META http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <h2>Personaldaten</h2> <img src="../DAT/JPG/Frau_1.jpg" style="border: 1px solid white" alt="Personalbild" align="left"> <p>0000210</p> <p>Frau</p> <p>Annelene Freyär</p> <p>HennebergerStrasse 38</p> <p>38512 Son'schied</p> </body> </html> |
AW: XML vs. XSL Processor MSXML
Moin.
Vielen und herzlichen Dank für diese Lösung meines Kernproblems. Sollte ich im Thread irgendjemanden unqualifiziert angpflaumt oder beleidigt haben biite ich in aller Form um Entschuldigung. Die mit von anderer Seite vorgeschlagene Lösung muss ich noch testen, die ist um einiges komplizierter. Mal sehen. Wenn ich damit durch bin stelle ich das hier vor, so wie bei meinen anderen Nachfragen hier im Forum auch, siehe https://www.delphipraxis.net/198509-...einfangen.html creehawk |
AW: XML vs. XSL Processor MSXML
Moin...8-)
XML und Personaldaten im Klartext? Verträgt sich das mit der DSGVO? :wink: |
AW: XML vs. XSL Processor MSXML
Nochmal Moin!
:-D Nee, verträgt sich wohl eher nicht. Eigentlich brauchen wir die Konstruktion für ein PC Spiel, aber so als Personendaten/Adressdaten lässt sich das leichter verstehen. Eine Frage noch: Die META Angabe in der HTML.xsl ist der entscheidende Faktor für richtige Umlaut Bearbeitung, richtig? creehawk |
AW: XML vs. XSL Processor MSXML
@schokohase:
Tja, und noch eine Frage: Im HTML Ergbnis stehen jetz ZWEI META Einträge
Code:
Abgesehen davon das ich diese META Kiste nochmal studieren muss: Ist das jetzt richtig? Vermutlich, aber ich dachte bisher entweder ist das Ergebnis entweder UTF-16 oder eben UTF-8.
<META http-equiv="Content-Type" content="text/html; charset=UTF-16">
<META http-equiv="Content-Type" content="text/html; charset=UTF-8"> creehawk |
AW: XML vs. XSL Processor MSXML
Ja, das ist noch eine Merkwürdigkeit von der Delphi-MSXML Konstruktion, denn die trägt einfach die UTF-16 Zeile ein, alle anderen Lösungen (via Browser, via C#) machen das nicht, und die benötigen deshalb dringend die META ... UTF-8 Zeile im Stylesheet, sonst gibt es wieder das Encoding-Problem.
Da aber der letzte Eintrag Vorrang hat ist es mehr Kosmetik (unschön) als wirklich ein Problem. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:20 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz