![]() |
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:
Oben der Programmcode, darunter die XSL. Die Übergabe der Parameter klappt problemlos, allerdings bekomme ich keine Fehlermeldung aber auch kein Ergebnis.
[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] Und zwar genau solange, bis ich
Code:
in
<xsl:if test="starts-with($BPANR_Feld,$BPANR_Wert)">
Code:
ändere, also den Parameter durch das zu verwendende Feld direkt ersetze.
<xsl:if test="starts-with(BPANR,$BPANR_Wert)">
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 |
AW: Parameterübergabe an XSL
gelöscht.
|
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 10:46 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz