synchron: XSLT - Interpretieren von Strings als XPath-Ausdruck

Hallo,

ich habe in einer XML Datei bereits die XPath-Ausdrücke stehen.
also
<eintrag>concat("a",substring("bcdefghij",2,4))</eintrag>

beim verarbeiten per xslt werden diese Befehle nicht ausgeführt.
Es wird als normaler String behandelt.

Vielen Dank

  1. @@synchron:

    <eintrag>concat("a",substring("bcdefghij",2,4))</eintrag>

    beim verarbeiten per xslt werden diese Befehle nicht ausgeführt.
    Es wird als normaler String behandelt.

    Woher sollte der XSLT-Prozessor auch wissen, dass kein normaler String gemeint ist, sondern eine XPath-Funktion?

    SELFHTML: <http://de.selfhtml.org/xml/darstellung/xpathfunktionen.htm#Hinweise@title=Hinweise zu den XPath-Funktionen>: „Da die Funktionen einen Wert zurückgeben, werden sie innerhalb von XSLT normalerweise an den Stellen verwendet, wo Attribute Wertzuweisungen erhalten. So könnte beispielsweise das XSLT-Element Seite value-of in der folgenden Form notiert werden:
    <xsl:value-of select="last()" />“

    Live long and prosper,
    Gunnar

    --
    Erwebsregel 208: Manchmal ist das einzige, was gefährlicher als eine Frage ist, eine Antwort.
    1. @@synchron:

      <eintrag>concat("a",substring("bcdefghij",2,4))</eintrag>

      beim verarbeiten per xslt werden diese Befehle nicht ausgeführt.
      Es wird als normaler String behandelt.

      Woher sollte der XSLT-Prozessor auch wissen, dass kein normaler String gemeint ist, sondern eine XPath-Funktion?

      Eben...das muss ich ja versuchen ihm beizubringen....

      SELFHTML: <http://de.selfhtml.org/xml/darstellung/xpathfunktionen.htm#Hinweise@title=Hinweise zu den XPath-Funktionen>: „Da die Funktionen einen Wert zurückgeben, werden sie innerhalb von XSLT normalerweise an den Stellen verwendet, wo Attribute Wertzuweisungen erhalten. So könnte beispielsweise das XSLT-Element Seite value-of in der folgenden Form notiert werden:
      <xsl:value-of select="last()" />“

      so funktioniert das. Also wenn ich den String direkt reinschreibe.

      <xsl:value-of select="concat('a',substring('bcdefghij',2,4))" /> funktioniert,

      im entry-template, in dem "." dem "concat("a",substring("bcdefghij",2,4))" entspricht funktioniert
      <xsl:value-of select="." /> nicht.

      wie mache ich ihm klar, dass er es interpretieren soll?

      Live long and prosper,
      Gunnar

      Danke

  2. Hallo synchron,

    beim verarbeiten per xslt werden diese Befehle nicht ausgeführt.
    Es wird als normaler String behandelt.

    Das funktioniert nur mit Prozessor-Erweiterungen wie saxon:evaluate() oder dyn:evaluate().

    Grüße,
    Thomas

    1. Hallo synchron,

      beim verarbeiten per xslt werden diese Befehle nicht ausgeführt.
      Es wird als normaler String behandelt.

      Das funktioniert nur mit Prozessor-Erweiterungen wie saxon:evaluate() oder dyn:evaluate().

      Grüße,
      Thomas

      ok, Danke