AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Parameterübergabe an XSL

Ein Thema von creehawk · begonnen am 22. Jun 2017 · letzter Beitrag vom 2. Jul 2017
Antwort Antwort
creehawk

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

Parameterübergabe an XSL

  Alt 22. Jun 2017, 06:53
Moin Moin!

Delphi-Quellcode:
.....

XSLTStyleSheet := CoFreeThreadedDOMDocument.Create;
XSLTStyleSheet.async := false;
XSLTStyleSheet.load(XSLFile);
XSLTTemplate := CoXSLTemplate.Create;
XSLTTemplate.stylesheet := XSLTStyleSheet;
XSLProcessor := XSLTTemplate.createProcessor;
XSLProcessor.input := XMLFile;
XSLProcessor.addParameter('BPANR_Feld',Suchfeld);
XSLProcessor.addParameter('BPANR_Wert',Suchwert);
XSLProcessor.transform;

......
Code:
[SIZE="10"]<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:param name="BPANR_Feld"/>
<xsl:param name="BPANR_Wert"/>   
<xsl:template match="/">
<KDR>
<xsl:for-each select="KDR/Kunde">
   <xsl:sort select="Nachname"/>
   <xsl:if test="starts-with($BPANR_Feld,$BPANR_Wert)">
      <Kunde>
          <BPANR><xsl:value-of select="BPANR"/></BPANR>
      <Anrede><xsl:value-of select="concat(Vorname,', ', Nachname)"/></Anrede>
      <!-- weitere Felder -->
      </Kunde>
      </xsl:if>
   </xsl:for-each>
</KDR>
</xsl:template>
</xsl:stylesheet>[/SIZE]
Oben der Programmcode, darunter die XSL. Die Übergabe der Parameter klappt problemlos, allerdings bekomme ich keine Fehlermeldung aber auch kein Ergebnis.
Und zwar genau solange, bis ich

Code:
   <xsl:if test="starts-with($BPANR_Feld,$BPANR_Wert)">
in
Code:
   <xsl:if test="starts-with(BPANR,$BPANR_Wert)">
ändere, also den Parameter durch das zu verwendende Feld direkt ersetze.

In W3 und auch bei Microsoft wird die Funktion starts-with(string,string) definiert. String.

Was geht da nicht? Muss ich aus dem Parameter erst noch ein - ja, was machen? Und wie?


creehawk
  Mit Zitat antworten Zitat
creehawk

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

AW: Parameterübergabe an XSL

  Alt 30. Jun 2017, 15:13
gelöscht.

Geändert von creehawk (30. Jun 2017 um 15:42 Uhr)
  Mit Zitat antworten Zitat
creehawk

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

AW: Parameterübergabe an XSL

  Alt 2. Jul 2017, 09:15
So, aber nu.

Hat mit Delphi eigentlich nix zu tun .....


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="xml" version="1.0" encoding="UTF-8" indent="yes"/>

   <xsl:param name="Suchfeld"/>
   <xsl:param name="Suchwert"/>   
   <xsl:template match="/">
   <KDR>
      <xsl:for-each select="KDR/Kunde">
      <xsl:sort select="Nachname"/>
      <xsl:variable name="NodeName">               
      <xsl:value-of select="*[name()=$Suchfeld]"/><!-- Parameter zu Knoten -->
      </xsl:variable>         
      <xsl:if test="starts-with($NodeName,$Suchwert)">
            <Kunde>
               <ID><xsl:value-of select="concat(ID,'')"/></ID>
               <BPANR><xsl:value-of select="concat(BPANR,'')"/></BPANR>
               <Anrede><xsl:value-of select="concat(Anrede,'')"/></Anrede>
               <Titel><xsl:value-of select="concat(Titel,'')"/></Titel>
               <Vorname><xsl:value-of select="concat(Vorname,'')"/></Vorname>
               <Nachname><xsl:value-of select="concat(Nachname,'')"/></Nachname>
               <Strasse><xsl:value-of select="concat(Strasse,'')"/></Strasse>
               <PLZ><xsl:value-of select="concat(PLZ,'')"/></PLZ>
               <Ort><xsl:value-of select="concat(Ort,'')"/></Ort>
               <Geburtsdatum><xsl:value-of select="concat(Geburtsdatum,'')"/></Geburtsdatum>
               <Telefon><xsl:value-of select="concat(Telefon,'')"/></Telefon>
               <Telefax><xsl:value-of select="concat(Telefax,'')"/></Telefax>
               <EMail><xsl:value-of select="concat(EMail,'')"/></EMail>
               <Internet><xsl:value-of select="concat(Internet,'')"/></Internet>            
            </Kunde>
         </xsl:if>
      </xsl:for-each>
   </KDR>
   </xsl:template>
</xsl:stylesheet>
  Mit Zitat antworten Zitat
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 14:47 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