EXSLT语法问题

时间:2009-10-07 17:10:03

标签: xslt exslt

毫无疑问,这将是显而易见的,但以下代码在标记行上有2个错误:

<xsl:stylesheet version="1.0" 
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:date="http://exslt.org/dates-and-times"
    extension-element-prefixes="date">

  <xsl:import href="date/date.xsl" />

  <xsl:template match="//day">
    <td>
      <date:day-in-month(<xsl:value-of select='@start_date' />)/> <!--problem here-->
    </td>
  </xsl:template>   
</xsl:stylesheet>

错误是:

  • 标记缺少右括号'&gt;'
  • 缺少结束标记“date:day-in-month”

到目前为止,我看不到这两种情况。有什么想法,还是我只是盲目?

1 个答案:

答案 0 :(得分:3)

首先,XSLT必须始终是有效的XML。显然不是,因为你将一个标签嵌入另一个标签内。这是你做错事的第一个线索。

其次,date:day-in-month是XPath函数,而不是元素,因此必须在XPath表达式中使用。例如,后者可以是xsl:value-of/@select属性的值:

<xsl:value-of select='date:day-in-month(@start_date)' />