AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

XML vs. XSL Processor MSXML

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

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

XML vs. XSL Processor MSXML

  Alt 19. Jan 2019, 17:20
Also:
Ein Teildatensatz einer XML namens <Abfrage.xml>
Code:
...
<Arbeitnehmer>
  <PersNr>0000210</PersNr>
  <Anrede>Frau</Anrede>
  <Vorname>Annelene</Vorname>
  <Nachname>Frey</Nachname>
  <Strasse>HennebergerStrasse 38</Strasse>
  <Postleitzahl>38512</Postleitzahl>
  <Ort>Son'schied</Ort>
  <Foto>../DAT/JPG/Frau_1.jpg</Foto>
 </Arbeitnehmer>
...
Für die Ausgabe im Browser eine HTML.XSL:
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>
 <body>
  <h2>Personaldaten</h2>
   <xsl:for-each select="Personaldaten/Arbeitnehmer">
    <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>
Beides zusammengebracht mit diesem Code:
Delphi-Quellcode:
    uses MSXML; // Version 6 (Windows 10)
    var
     XMLResult : IXMLDOMDocument;
     XSLTTemplate: IXSLTemplate;
     XSLTStyleSheet: IXMLDOMDocument2;
     XSLProcessor: IXSLProcessor;
    begin
     XMLResult := CoDOMDocument.Create;
     XSLTStyleSheet := CoFreeThreadedDOMDocument.Create;
     XSLTStyleSheet.async := False;
     XSLTStyleSheet.load(XSLPath + 'HTML.xsl');
     XSLTTemplate := CoXSLTemplate.Create;
     XSLTTemplate.stylesheet := XSLTStyleSheet;
     XSLProcessor := XSLTTemplate.createProcessor;
     XSLProcessor.input := XSLPath + 'Abfrag.xml';
     XSLProcessor.transform;
     XMLResult.loadXML(XSLProcessor.output);
     XMLResult.save(HTMPath + 'Ergebnis.html');
    end;
und Feuer frei. Die Ergebnis.html entspricht dem gewünschten Kunstwerk.

Jetzt pappe ich in die XSL noch den Verweis auf das Bild ..(Foto)
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>
 <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 schicke das dann wieder durch den XSL Processor. Das Ergebniss läßt zu wünschen übrig, denn es wird NICHTS ausgegeben. NULL. NIENTE. Die Ergebnis.html ist leer. Der Browser ist sowas von leer. VOLLKOMMEN. Eine Fehlermeldung von Delphi oder dem Browser gibt es auch nicht.

ABER:
Wenn ich jetzt in die Abfrage.xml einen direkten Verweis auf diese XSL mit dem Bildverweis setze ....

Code:

<?xml-stylesheet href="HTML.xsl" type="text/xsl"?>
und die Abfrage.xml in Firefox öffnen habe ich das gewünscht Ausgabeergebnis : Daten mit Bild.
Also zerlegt für mein Verständnis der XSLProcessor meine schöne Arbeit und sagt mit nicht warum der Sack. Hilfreiche Informationen sind nicht zu finden. Bei MS ist nichts zu finden, im Netz alles nur bezogen auf Java Script.

Hat hier jemand eine Idee?

creehawk

Geändert von creehawk (20. Jan 2019 um 06:30 Uhr)
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.400 Beiträge
 
Delphi 7 Professional
 
#2

AW: XML vs. XSL Processor MSXML

  Alt 19. Jan 2019, 17:44
Liegt es am img-Tag?

Statt <img src="{$Bild}" style="border: 1px solid white" alt="Personalbild" align="left"></img>

eher so:

<img src="{$Bild}" style="border: 1px solid white" alt="Personalbild" align="left">

Siehe: https://wiki.selfhtml.org/wiki/Referenz:HTML/img

Da steht ganz klar:
Zitat von SelfHtml:
Start-Tag: notwendig
End-Tag: verboten
Ansonsten: https://www.w3schools.com/tags/tag_img.asp

Tante Google mit html tag img syntax versorgt gibt ausreichend Hilfe.
  Mit Zitat antworten Zitat
creehawk

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

AW: XML vs. XSL Processor MSXML

  Alt 20. Jan 2019, 06:33
Moin.

Nein, liegt es nicht. Ob man den TAG jetzt dranlässt wie hier im Beispiel oder eben nicht: es führt zum beschriebenen Ergebnis.

Ich habe das jetzt mal aus dem Code oben rausgenommen. Aber wie gesagt.

creehawk


P.S. Wie gesagt, Firefox und IE (und Edge und Opera) fressen das problemlos.
  Mit Zitat antworten Zitat
creehawk

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

AW: XML vs. XSL Processor MSXML

  Alt 20. Jan 2019, 09:26
Ops, falsch.

Die Abfrage.xml mit dem direkten Verweis auf die XSL produziert in Firefox und Opera eine korrektes Ergebnis.

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.

creehawk
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.400 Beiträge
 
Delphi 7 Professional
 
#5

AW: XML vs. XSL Processor MSXML

  Alt 20. Jan 2019, 10:49
Ob man den TAG jetzt dranlässt wie hier im Beispiel oder eben nicht: es führt zum beschriebenen Ergebnis.
Man kann syntaktisch korrektes XML und HTML verwenden oder auch nicht.
Man kann sich drauf verlassen, dass der Browser die Fehler schon irgendwie ignorieren oder beheben wird, oder auch nicht.

Mit den Folgen muss man dann halt leben.
  Mit Zitat antworten Zitat
creehawk

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

AW: XML vs. XSL Processor MSXML

  Alt 20. Jan 2019, 10:55
Also:

Wenn ich den img TAG so verwende wie vorgeschrieben geht es nicht.
Wenn ich den img TAG mit abschließendem TAG </img> verwende geht es auch nicht.

Und wie bemerkt als Garnitur gibt der EDGE die Umlaute nicht aus.

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.

creehawk
  Mit Zitat antworten Zitat
Schokohase
(Gast)

n/a Beiträge
 
#7

AW: XML vs. XSL Processor MSXML

  Alt 20. Jan 2019, 12:33
Fehlendes Wissen wird heutzutage gerne durch eine lautstarke Meinung kompensiert und dummerweise bekommen die mit der lautesten Meinung auch noch die meiste Aufmerksamkeit.

Von mir nicht mehr. Wenn du an einem Wissensaustausch interessiert bist, dann immer gerne, aber so, das braucht kein Mensch.
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.400 Beiträge
 
Delphi 7 Professional
 
#8

AW: XML vs. XSL Processor MSXML

  Alt 20. Jan 2019, 12:48
Fehlendes Wissen wird heutzutage gerne durch eine lautstarke Meinung kompensiert und dummerweise bekommen die mit der lautesten Meinung auch noch die meiste Aufmerksamkeit.
Leider ist diese Aussage korrekt und allgemeingültig
  Mit Zitat antworten Zitat
creehawk

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

AW: XML vs. XSL Processor MSXML

  Alt 20. Jan 2019, 18:08
Öh, habe ich jetzt etwas falsches gesagt?

Die geposteten Code/XSL/XML Teile sind doch syntaktisch jetzt richtig oder nicht? Fehlendes Wissen ist in soweit korrekt, als ich eben nicht auf die Reihe bekomme wieso das jetzt nicht geht.



creehawk
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.400 Beiträge
 
Delphi 7 Professional
 
#10

AW: XML vs. XSL Processor MSXML

  Alt 20. Jan 2019, 18:15
Die geposteten Code/XSL/XML Teile sind doch syntaktisch jetzt richtig oder nicht?
Wäre dem so, würde es funktionieren.

https://wiki.selfhtml.org/wiki/XML/R...und_Kommentare
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 20:10 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