假设我有一个包含以下内容的XML文档:
<keywords>
<keyword>test</keyword>
<keyword>test2</keyword>
<keyword>test3</keyword>
<keyword>test4</keyword>
</keywords>
我想使用XSLT在HTML中打印出来,如下所示:
<ul>
<li>test</li>
<li>test2</li>
<li>test3</li>
<li>test4</li>
</ul>
我的XSLT会是什么样子?我试过这个:
<ul>
<xsl:for-each select="keywords/keyword">
    <li><xsl:value-of select="keyword"/></li>
</xsl:for-each>
</ul>
但是这不会打印出关键字值,只是一个空白项.
<ul>
<xsl:for-each select="keywords">
    <li><xsl:value-of select="keyword"/></li>
</xsl:for-each>
</ul>
不起作用(出于显而易见的原因),但至少打印出第一个关键字!
建议?谢谢!
我建议for-each在这里避免使用模板 - 它在XSLT中更惯用,特别是当你有一个清晰的一对一映射时:
<xsl:template match="keyword">
    <li><xsl:value-of select="."/></li>
</xsl:template>
<xsl:template match="keywords">
    <ul><xsl:apply-templates/></ul>
</xsl:template>
<ul>
<xsl:for-each select="keywords/keyword">    
  <li><xsl:value-of select="text()"/></li>
</xsl:for-each>
</ul>
使用text()可以获得关键字节点内的文本