2010-03-16 9 views
7

Angesichts der xml:XSL for-each und wert von

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

Und xsl:

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

Was muss ich in der for-Schleife jedes setzen Sie den Text zugreifen? Es scheint keine entsprechende xsl:value-of zu geben, weil select="", select="/" und select="element" alle falsch sind.

Antwort

11
<xsl:value-of select="."/> 
+2

auch wählen = "text()", wie ich gerade in der XPath-Empfehlung @Sandy Der Unterschied –

+1

gefunden, ist dies: '.' auf den aktuellen Knoten bezeichnet (' ') selbst. Der 'value-of' eines Knotens ist sein gesamter Textinhalt (einschließlich des Textes von irgendwelchen Nachkommenknoten!). 'text()' bezieht sich nur auf die * direkten Kinder * des aktuellen Knotens, die Textknoten sind (dies schließt alle Nachkommenknoten aus!). In Ihrem Fall macht das keinen wirklichen Unterschied. Es gibt Fälle, in denen dies der Fall ist. – Tomalak