XPath 3.0, XPath 2.0, XPath 1.0 / XPath-Funktionen / Stringfunktionen / XPath: concat

XPath: concat

XPath: concat

➪ Die XPath-Funktion concat verkettet mehrere Informationen zu einem String.

Auf dieser Seite:

Erwartet werden hierbei mindestens zwei einzelne -Parameter.


<xsl:value-of 
     select="concat(//Ort[1]/Mensch[1]/name, 
                    ', ', 
                    //Ort[1]/Mensch[2]/name)"/>

Falsch wäre jedoch


<xsl:value-of 
     select="concat(//Mensch[1]/name, 
                    ', ', 
                    //Mensch[2]/name)"/>

da diese XPath-Statements jeweils mehrere Items ansprechen würden.


Fehlerlevel: fatal
Beschreibung: XPTY0004: A sequence of more than one item is not 
allowed as the first argument of concat()
URL: http://www.w3.org/TR/xpath20/#ERRXPTY0004

Verknüpfungsoperatoren in XSL 3.0 / XPath 3.0

In XSL 3.0 / XPath 3.0 stehen besondere Verknüpfungsoperatoren zur Verfügung, die den Aufruf von concat überflüssig machen. So ergibt


<xsl:value-of  select="'x' || 'y' || 'z'"/>

... dieses Ergebnis:


<ergebnis>xyz</ergebnis>

Eine aus mehreren so verketteten Einzelwerten erhalten Sie durch diesen Aufruf:


<xsl:value-of select="(1 to 3) ! ('x' || 'y' || 'z')"/>

Die Sequenz sieht dann so aus:


<ergebnis>xyz xyz xyz</ergebnis>

Natürlich kann jede Einzelsequenz separat betrachtet werden:


<xsl:template match="/">
  <ergebnis>
   <xsl:for-each select="(1 to 3) ! ('x' || 'y' || 'z')">
    <einzelwert>
     <xsl:value-of select="."/>
    </einzelwert>
   </xsl:for-each>
  </ergebnis>
</xsl:template>

Hier sehen Sie einen Unterschied zu :


<ergebnis>
   <einzelwert>xyz</einzelwert>
   <einzelwert>xyz</einzelwert>
   <einzelwert>xyz</einzelwert>
</ergebnis>

wg / 15. September 2018



Fragen? Anmerkungen? Tipps?

Bitte nehmen Sie Kontakt zu mir auf.






Vielen Dank für Ihr Interesse an meiner Arbeit.


V.i.S.d.P.: Wilfried Grupe * Klus 6 * 37643 Negenborn

☎ 0151. 750 360 61 * eMail: info10@wilfried-grupe.de

www.wilfried-grupe.de/concat.html