11

Given the xml:

<element>text</element>
...
<element>text</element>

And xsl:

<xsl:for-each select="element">
...
</xsl:for-each>

What do I need to put inside the for-each loop to access the text? There doesn't seem to be a corresponding xsl:value-of because select="", select="/", and select="element" are all wrong.

Sandy Vanderbleek
  • 1,082
  • 1
  • 12
  • 13

1 Answers1

17
<xsl:value-of select="."/>
Paulo Santos
  • 11,285
  • 4
  • 39
  • 65
  • 2
    also select="text()" as I just found in the xpath recommendation – Sandy Vanderbleek Mar 16 '10 at 03:34
  • 1
    @Sandy The difference is this: `.` refers to the current node (``) itself. The `value-of` a node is its entire text contents (including the text of any descendant nodes!). `text()` only refers to the *direct children* of the current node that are text nodes (this excludes any descendant nodes!). In your case, this makes no actual difference. There are cases where it does. – Tomalak Mar 16 '10 at 09:58