2016-08-11 4 views
0

Ich lerne nur xsl. Ich versuche, den Wert von zwei Variablen zu verketten und einen Bindestrich zwischen ihnen zu setzen. Dies ist mein Code:xsl: concat zwei Variablen in neue

<xsl:variable name="checkboxvalue" select="translate(@value, ' ', '')" /> 
          <xsl:variable name="questionname" select="{ancestor::element/attribute::name}"/> 
      <xsl:variable name="newcheckboxvalue" select="concat($questionname,-,$checkboxvalue)"/> 

Wenn ich ausführen, um die Seite, die diese XSL-Datei verwendet ich, dass unerwartetes Token \ "{\" in Pfadausdruck " "Fatal Error: unerwartete Token \", \" in Pfadausdruck

schätze jede Hilfe.

+0

Zeigen Sie Ihren Code. – randominstanceOfLivingThing

Antwort

1

Der Fehler, den Sie bekommen ist auf die zweite Variable

<xsl:variable name="questionname" select="{ancestor::element/attribute::name}"/> 

Es ist nicht geschweiften Klammern erlaubt ist hier zu verwenden, da XSLT bereits einen Ausdruck in der select Attribut erwartet. Du solltest das einfach tun.

<xsl:variable name="questionname" select="ancestor::element/attribute::name" /> 

Oder diese ...

<xsl:variable name="questionname" select="ancestor::element/@name" /> 

Auch für Ihre dritte Anweisung, müssen Sie den Bindestrich in Apostrophe wickeln, zu behandeln, es ist ein String

<xsl:variable name="newcheckboxvalue" select="concat($questionname, '-' ,$checkboxvalue)"/> 

Wenn Sie Möchten Sie mehr über die Verwendung geschweifter Klammern erfahren, lesen Sie Attribute Value Templates.

+0

Danke für die Hilfe und den Link! –