简体   繁体   English

我如何在Diazo中切片字符串?

[英]How can I slice a string within Diazo?

I'd like to get only the two-digit day from a default Events portlet. 我只想从默认的事件Portlet中获得两位数的日期。 That'd be "13" in the example below: 在以下示例中为“ 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>

At root rules level I tried: 在基本规则级别,我尝试过:

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

And also: 并且:

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

None of which worked. 没有一个工作。 What should I do? 我该怎么办?

It's possible, but ugly: 可能,但是很丑:

<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>

This is probably something you're better off achieving by modifying the underlying Events portlet. 最好通过修改基础的事件portlet来实现。 But one of the true Diazo wizards may have a way. 但是,真正的重氮巫师之一可能有办法。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM