Announcement

Collapse
No announcement yet.

Variable enthält teil einer Variable

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Variable enthält teil einer Variable

    Hallo Zusammen,

    mit dem contains() Befehl kann man ja leider nur überprüfen ob eine Variable einen Teil eines Strings enthält.

    Ich würde gerne überprüfen ob eine Variable eine andere Variable enthält.

    Klappt nicht :
    Code:
    contains($Var1,$Var2)
    Viele Dank für Hilfe!

  • #2
    Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <root>
    <tag>wert</tag>
    <tag>wertvoll</tag>
    </root>
    Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
    <xsl:template match="/">
    <xsl:apply-templates select="root"/>
    </xsl:template>
    <xsl:template match="root">
    <xsl:variable name="tag1" select="tag[1]"/>
    <xsl:variable name="tag2" select="tag[2]"/>
    <root>
    <xsl:value-of select="$tag1"/>
    <xsl:value-of select="$tag2"/>
    <vergleich>
    <xsl:choose>
    	<xsl:when test="$tag1=$tag2">
    	<xsl:text>gleich</xsl:text></xsl:when>
    	<xsl:otherwise><xsl:text>ungleich</xsl:text></xsl:otherwise>
    </xsl:choose>
    </vergleich>
    </root>
    </xsl:template>
    </xsl:stylesheet>
    Code:
    <?xml version="1.0" encoding="UTF-16"?>
    <root xmlns:fo="http://www.w3.org/1999/XSL/Format">wertwertvoll<vergleich>ungleich</vergleich></root>
    Zuletzt editiert von xml-looser; 20.03.2010, 19:22.

    Comment


    • #3
      Originally posted by gecko View Post
      Hallo Zusammen,

      mit dem contains() Befehl kann man ja leider nur überprüfen ob eine Variable einen Teil eines Strings enthält.

      Ich würde gerne überprüfen ob eine Variable eine andere Variable enthält.

      Klappt nicht :
      Code:
      contains($Var1,$Var2)
      Viele Dank für Hilfe!
      contains ist eine Funktion, die prüft, ob die als erstes Argument übergebene Zeichenkette die als zweites Argument übergebene Zeichenkette enthält. Ob dabei ein Zeichenkettenliteral oder eine Variable übergeben wird, die als Wert eine Zeichenkette hat, spielt keine Rolle.

      Von welchem Typ sind denn deine beiden Variablen? Welche Werte haben sie, was für ein Ergebnis willst du erreichen?

      Comment


      • #4
        Ich habe zzwei Variablen vom typ String.
        Ich möchte herausfinden, ob eine Variable den Werte einer anderen beinhaltet. Der STing kann dabei in etwa so aussehen:

        Code:
        <xsl:variable name="String1">
         <xsl:value-of select="'#value1#value2#value3'"></xsl:value-of>
        </xsl:variable>
        
        <xsl:variable name="String2">
         <xsl:value-of select="'#value2'"></xsl:value-of>
        </xsl:variable>
        Ich möchte wissen ob String2 in String1 enthalten ist.

        Comment


        • #5
          Mit deinem Code sind die Variablen aber nicht vom Typ String, sondern vom Typ "result tree fragment" (in XSLT 1.0).
          Wenn du
          Code:
          <xsl:variable name="String1" select="'#value1#value2#value3'"/>
          benutzt, dann hast du eine Variable vom Typ String.
          Allerdings sehe ich auch mit deinem Code kein Problem mit contains($String1, $String2), da man auch den String-Wert eines result tree fragment bestimmen kann.
          Welchen XSLT-Prozessor benutzt du denn? Erhälst du eine Fehlermeldung oder nur nicht das gewünschte Resultat?

          Comment

          Working...
          X