2009-07-17 27 views
5

Giả sử tôi có chuỗi "2004,2005,2006,2007,2008,2009" được gán cho tham số "hiển thị".Kiểm tra giá trị bên trong một chuỗi

Bây giờ, điều này không làm việc:

<xsl:if test="$show='2004'"> 
    //stuff 
</xsl:if> 

này không hoạt động:

<xsl:if test="$show='2005'"> 
    //stuff 
</xsl:if> 

Tôi không chắc chắn làm thế nào để kiểm tra một phần của một chuỗi như thế. Bất kỳ ý tưởng?

+0

Dup của http://stackoverflow.com/questions/569908/is-there-an-xsl-contains-directive – Vadzim

Trả lời

19

Sử dụng contains.

<xsl:if test="contains($show, '2004')"> 
    //stuff 
</xsl:if> 

Ví dụ chi tiết hơn, sẽ in yes.

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <xsl:template match="/"> 
     <xsl:variable name="show" select="'2004,2005,2006,2007,2008,2009'"/> 
     <xsl:if test="contains($show, '2004')">yes</xsl:if> 
     <xsl:if test="not(contains($show, '2004'))">no</xsl:if> 
    </xsl:template> 
</xsl:stylesheet> 
+0

Tôi đã như sau: ' ... ... ... 'và tôi đang kiểm tra nó như sau:' '. Tôi tiếp tục nhận được lỗi cú pháp XPath. Bạn có thể giúp đỡ không? http://xsltransform.net/pPzifp5/1. Tôi muốn lấy nội dung cho mỗi 'grp #' – Si8

2

Bạn cần hàm contains() XPath. Bạn có thể sử dụng nó như thế này:

<xsl:if test="contains($show,'2005')"> 
    //stuff 
</xsl:if> 
Các vấn đề liên quan