я получил следующее значение в файле XML:Как мне создать шаблон в шаблоне?
<document>
<effectiveTime value="20131008"/>
<item>
<effectiveTime>
<low value=20131008"/>
</effectiveTime>
</item>
</document>
я следующий как часть моего XSL файла:
<xsl:variable name="today">
<xsl:call-template name="formatDate">
<xsl:with-param name="date" select ="/Document/effectiveTime/@value" />
</xsl:call-template>
</xsl:variable>
<!-- template for date formatting from xml document -->
<xsl:template name="formatDate">
<xsl:param name="date" />
<xsl:variable name="year" select="substring($date, 1, 4)" />
<xsl:variable name="month" select="number(substring($date, 5, 2))" />
<xsl:variable name="day" select="substring($date, 7, 2)" />
<xsl:value-of select="concat($month, '/', $day, '/', $year)" />
</xsl:template>
<!-- template for comparing against the date of visit -->
<xsl:template name="compareToday">
<xsl:param name="date"/>
<xsl:if test="$date = $today">
<xsl:text>true</xsl:text>
</xsl:if>
</xsl:template>
Мне нужно сравнить/документ/пункт/effectivetime/low/@ значение, которое я сохранил в переменной $ today, так что я могу сделать строку на выходе (html) полужирным. Это то, что я в настоящее время сделать сравнения:
<xsl:variable name="IsToday">
<xsl:call-template name="compareToday">
<xsl:with-param name="date" select="/document/item/effectiveTime/low/@value"/>
</xsl:call-template>
</xsl:variable>
<span>
<xsl:if test="$IsToday = 'true'">
<xsl:attribute name="style">
<xsl:text>font-weight:bold;</xsl:text>
</xsl:attribute>
</xsl:if>
<xsl:value-of select="/document/item/effectiveTime/low/@value" />
</span>
Это не работает, потому что он пытается сравнить 20131008 от 10/08/2013. Кажется, я не могу получить формат, который нужно сделать, прежде чем делать сравнение. Большинство (но не все) дат в моем документе находятся в формате YYYYMMDD.
Спасибо
вот что я сделал. Я просто не вложил его в первую переменную $ IsToday. – jjasper0729
о, вы правы ... Я не перезагружал страницу перед публикацией, поэтому я пропустил, что вы уже ответили на нее. –
Не проблема, как только я представил вопрос, способ исправить это ударил меня, поэтому я пошел вперед и ответил на него, чтобы он не оставил его открытым. Спасибо за ввод, хотя. Имеет значение, если переменная date temp вложена внутри нашей вне $ IsToday? – jjasper0729