Einzelnen Beitrag anzeigen

Neuromancer

Registriert seit: 8. Aug 2003
62 Beiträge
 
Delphi 7 Enterprise
 
#1

concat: Ergebnis "string" aber Knoten als Ergebnis

  Alt 23. Jun 2006, 08:53
Hallo zusammen,

folgendes Problem:
Hier ein Ausschnitt aus einem xsl:template, das ein anderes Template aufruft:
XML-Code:
<td class="RahmenLeistungsziffer" style="border-left:1px solid black">
  <xsl:call-template name="BuildLeistungszifferBlock">
    <xsl:with-param name="iBlockNummer" select="1" />
    <xsl:with-param name="sLeistungsziffer" select="Formular/Components/edG01_Leistungsziffer/@value" />
    <xsl:with-param name="sAnzahlBehandlungen" select="Formular/Components/edG01_AnzahlBehandlungen/@value" />
    <xsl:with-param name="sBehandlungstageWoche" select="Formular/Components/edG01_BehandlungstageWoche/@value" />
  </xsl:call-template>
</td>
<td class="RahmenLeistungsziffer" style="border-left:1px solid black">
  <xsl:call-template name="BuildLeistungszifferBlock">
    <xsl:with-param name="iBlockNummer" select="2" />
    <xsl:with-param name="sLeistungsziffer" select="Formular/Components/edG02_Leistungsziffer/@value" />
    <xsl:with-param name="sAnzahlBehandlungen" select="Formular/Components/edG02_AnzahlBehandlungen/@value" />
    <xsl:with-param name="sBehandlungstageWoche" select="Formular/Components/edG02_BehandlungstageWoche/@value" />
  </xsl:call-template>
</td>
Natürlich ist es jetzt sehr unschön, dass 4(!) Parameter übergeben werden, wo doch eigentlich einer (nämlich iBlockNummer) völlig ausgereicht hätte.
Mit concat hätte man so vorgehen können:
select="concat('Formular/Components/edG0', $iBlockNummer, '_Leistungsziffer/@value')" Nun ist es aber so, dass die Funktion "concat" mir -leider - einen String statt einem ausführbaren XPath-Befehl zurückgibt. Also liefert mir der select auch einen String (nämlich z.B. 'Formular/Components/edG01_Leistungsziffer/@value') anstatt dem Inhalt des Attributs "value" des Knotens "edG01_Leistungsziffer".

Wie bekomme ich es hin, dass der String als XPath und nicht als string interpretiert wird?

Danke für eure Hilfe.

Gruß

//Edit:
Natürlich hätte man auch so vorgehen können:
select="Formular/Components/*[$iBlockNummer + $Offset]/@value" Aber das ist schlicht und einfach grauenhaft...
  Mit Zitat antworten Zitat