2010-08-12 81 views
10

相关联。如果我有包括XSLT:将元素

<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> 

一个XML文件,我想使用XSLT来加工成HTML文件此,名称和价值属性和文本作为价值一个描述,我如何获得XML节点文本?

<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> 

以上XSLT碎片也顺利拿到了名称和值的属性,但它未能得到的文本,我想我失去了一些东西很明显,但我不知道是什么。

回答

9

试试这个

<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

的作品,谢谢! – 2010-08-12 15:55:12

3

啊哈,这也似乎工作:

<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

是的。不同之处在于:'xsl:value-of select =“text()”'输出第一个文本节点child的字符串值,'xsl:value-of select =“。”'输出上下文节点'字符串值。 – 2010-08-12 16:23:55