2010-08-12 15 views
10

Wenn ich eine XML-Datei, dieXslt: Wert des Textes mit dem Element zugeordnet

<param name="foo" value="5000" >foo is a way of making pasta sauce</param> 
<param name="bar" value="3000" >bar is controlling the beer taps</param> 

und ich möchte enthält XSLT verwenden, um dies in eine HTML-Datei zu verarbeiten, mit den Namen und den Wert Attribute und den Text als eine Beschreibung, wie bekomme ich den XML-Node-Text?

<xsl:for-each select="param"> 
    <tr> 
     <td><xsl:value-of select="@name"/></td> 
     <td><xsl:value-of select="@value"/></td> 
     <td><xsl:text> </xsl:text></td> 
    </tr> 
</xsl:for-each> 

Das obige XSLT-Fragment erfolgreich den Namen und den Wert Attribute erhält, aber es funktioniert nicht, den Text zu bekommen, und ich glaube, ich bin etwas fehlt offensichtlich, aber ich weiß nicht, was.

Antwort

9

Versuchen Sie, diese

<xsl:for-each select="param"> 
    <tr> 
     <td><xsl:value-of select="@name"/></td> 
     <td><xsl:value-of select="@value"/></td> 
     <td><xsl:value-of select="text()"/></td> 
    </tr> 
</xsl:for-each> 
+0

, das funktioniert, danke! –

3

aha, das scheint auch zu funktionieren:

<xsl:for-each select="param"> 
    <tr> 
     <td><xsl:value-of select="@name"/></td> 
     <td><xsl:value-of select="@value"/></td> 
     <td><xsl:value-of select="."/></td> 
    </tr> 
</xsl:for-each> 
+5

Ja. Und der Unterschied ist: 'xsl: value-of select =" text() "' gibt den String-Wert des ersten untergeordneten Textknotens aus, und 'xsl: value-of select =". "' Gibt den String-Wert des Kontextknotens aus . –

Verwandte Themen