如何在Diazo中切割一个字符串?

时间:2012-04-13 13:27:54

标签: xslt split plone diazo

我想从默认的Events portlet中只获得两位数的日期。在下面的例子中,这是“13”:

<dl class="portlet portletEvents">
    <dt class="portletHeader"><a href="/mysite/events_listing">Next events</a></dt>    
    <dd class="portletItem">
        <a title="" href="/mysite/events/my-event">Example event</a>
        <span class="portletItemDetails"><span>13/04/2012 - 22/04/2012</span></span>
    </dd>
    <dd class="portletFooter"><a href="/mysite/events_listing">Next events…</a></dd>
</dl>

在根规则级别,我尝试了:

<replace css:theme="#event-day strong">
  <xsl:template css:match="dl.portletEvents .portletItemDetails span">
    <xsl:value-of select="substring(.,1,2)" />
  </xsl:template>
</replace>

还有:

<replace css:theme="#event-day strong">
  <xsl:value-of css:select="substring(dl.portletEvents .portletItemDetails span,1,2)" />
</replace>

其中没有一个有效。我该怎么办?

2 个答案:

答案 0 :(得分:3)

这是可能的,但很难看:

<copy css:theme="#event-day strong">
   <xsl:value-of select="substring((//dl[contains(concat(' ', normalize-space(@class), ' '), ' portletEvents ')]//span[contains(concat(' ', normalize-space(@class), ' '), ' portletItemDetails ')]/span/text()),1,2)"/>
</copy>

答案 1 :(得分:2)

通过修改底层的Events portlet,这可能是你最好的事情。但真正的重氮巫师之一可能有办法。