AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

XML vs. XSL Processor MSXML

Ein Thema von creehawk · begonnen am 19. Jan 2019 · letzter Beitrag vom 21. Jan 2019
Antwort Antwort
Seite 2 von 2     12   
creehawk

Registriert seit: 1. Jul 2013
Ort: Hamburg
241 Beiträge
 
Delphi 10.4 Sydney
 
#11

AW: XML vs. XSL Processor MSXML

  Alt 20. Jan 2019, 19:07
@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
  Mit Zitat antworten Zitat
Schokohase
(Gast)

n/a Beiträge
 
#12

AW: XML vs. XSL Processor MSXML

  Alt 20. Jan 2019, 19:16
Öh, habe ich jetzt etwas falsches gesagt?
Ja
Und wenn ich die Abfrage.xml aufrufe in Firefox wird alles korrekt gezeigt, wenn ich die Seite dann im Firefox speichere und diese wieder aufrufe sind die Umlaute auch im ..... also nicht korrekt.

Ipso facto : kompletter Mist.
Nicht so in Edge und in der TWebrowser Komponente von Delphi. Das Kernproblem der Grafiken besteht dort auch nicht, allerdings werden die Umlaute nicht korrekt wiedergegeben wie ich leider eben erst entdeckt habe.

Noch mehr Nonsens also.
Wenn Umlaute nicht korrekt angezeigt werden, dann liegt das am Encoding. Das sollte man wissen.

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.
  Mit Zitat antworten Zitat
creehawk

Registriert seit: 1. Jul 2013
Ort: Hamburg
241 Beiträge
 
Delphi 10.4 Sydney
 
#13

AW: XML vs. XSL Processor MSXML

  Alt 20. Jan 2019, 19:30
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
  Mit Zitat antworten Zitat
Schokohase
(Gast)

n/a Beiträge
 
#14

AW: XML vs. XSL Processor MSXML

  Alt 20. Jan 2019, 19:49
Damit zukünftige Leser hier nicht mit leeren Händen wieder gehen müssen, hier eine Lösung
Delphi-Quellcode:
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;
Verwendet habe ich dabei als XmlFile
XML-Code:
<?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>
und als Stylesheet (html.xsl)
XML-Code:
<?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>
und erhalte
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>
  Mit Zitat antworten Zitat
creehawk

Registriert seit: 1. Jul 2013
Ort: Hamburg
241 Beiträge
 
Delphi 10.4 Sydney
 
#15

AW: XML vs. XSL Processor MSXML

  Alt 21. Jan 2019, 09:22
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
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#16

AW: XML vs. XSL Processor MSXML

  Alt 21. Jan 2019, 09:27
Moin...
XML und Personaldaten im Klartext? Verträgt sich das mit der DSGVO?
  Mit Zitat antworten Zitat
creehawk

Registriert seit: 1. Jul 2013
Ort: Hamburg
241 Beiträge
 
Delphi 10.4 Sydney
 
#17

AW: XML vs. XSL Processor MSXML

  Alt 21. Jan 2019, 09:50
Nochmal Moin!

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
  Mit Zitat antworten Zitat
creehawk

Registriert seit: 1. Jul 2013
Ort: Hamburg
241 Beiträge
 
Delphi 10.4 Sydney
 
#18

AW: XML vs. XSL Processor MSXML

  Alt 21. Jan 2019, 10:00
@schokohase:

Tja, und noch eine Frage:

Im HTML Ergbnis stehen jetz ZWEI META Einträge
Code:
        <META http-equiv="Content-Type" content="text/html; charset=UTF-16">
        <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
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.

creehawk
  Mit Zitat antworten Zitat
Schokohase
(Gast)

n/a Beiträge
 
#19

AW: XML vs. XSL Processor MSXML

  Alt 21. Jan 2019, 10:13
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.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:44 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