Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   XML (https://www.delphipraxis.net/46-xml/)
-   -   Parameterübergabe an XSL (https://www.delphipraxis.net/193122-parameteruebergabe-xsl.html)

creehawk 22. Jun 2017 05:53

Parameterübergabe an XSL
 
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

creehawk 30. Jun 2017 14:13

AW: Parameterübergabe an XSL
 
gelöscht.

creehawk 2. Jul 2017 08:15

AW: Parameterübergabe an XSL
 
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>


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:28 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