EXSLT синтаксическая проблема - PullRequest
0 голосов
/ 07 октября 2009

Без сомнения, это будет что-то очевидное, но следующий код содержит 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>

Ошибки:

  • Метка отсутствует закрывающая скобка '>'
  • Отсутствует конечный тег "дата: день в месяце"

Насколько я понимаю, ни один из них не имеет место. Есть мысли или я просто слепой?

1 Ответ

3 голосов
/ 07 октября 2009

Для начала XSLT всегда должен быть действительным XML. Ваш, очевидно, нет, поскольку вы вкладываете один тег в другой. Это ваша первая подсказка, что вы делаете что-то не так.

Во-вторых, date:day-in-month - это функция XPath, а не элемент, и поэтому должна использоваться в выражении XPath. Последний может, например, иметь значение атрибута xsl:value-of/@select:

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