2009-02-20 16 views
49

मैं XSL निम्नलिखित स्निपेट है:क्या कोई एक्सएसएल "शामिल है" निर्देश है?

<xsl:for-each select="item"> 
    <xsl:variable name="hhref" select="link" /> 
    <xsl:variable name="pdate" select="pubDate" /> 
    <xsl:if test="hhref not contains '1234'"> 
     <li> 
     <a href="{$hhref}" title="{$pdate}"> 
      <xsl:value-of select="title"/> 
     </a> 
     </li> 
    </xsl:if> 
    </xsl:for-each> 

क्योंकि मैं नहीं किया है शामिल है के लिए वाक्यविन्यास बाहर काम करने के लिए सक्षम किया गया कथन काम नहीं करता है। मैं उस xsl को सही तरीके से कैसे व्यक्त करूं: यदि?

उत्तर

98

ज़रूर है! उदाहरण के लिए:

<xsl:if test="not(contains($hhref, '1234'))"> 
    <li> 
    <a href="{$hhref}" title="{$pdate}"> 
     <xsl:value-of select="title"/> 
    </a> 
    </li> 
</xsl:if> 

वाक्य रचना है: contains(stringToSearchWithin, stringToSearchFor)

1

यह कुछ की तरह होना चाहिए ...

<xsl:if test="contains($hhref, '1234')"> 

(परीक्षण नहीं)

w3schools देखें (हमेशा एक अच्छा संदर्भ BTW)

+0

लाइनों में रिटर्न का... ? –

+0

कोड स्वरूपण को सही किया गया। – Tomalak

+0

@ कैडरियन: घुंघराले ब्रेसिज़ गलत हैं। – Tomalak

6

वहां वास्तव में कोई xpath है समारोह यह कुछ ऐसा दिखाई देगा शामिल:

<xsl:for-each select="item"> 
<xsl:variable name="hhref" select="link" /> 
<xsl:variable name="pdate" select="pubDate" /> 
<xsl:if test="not(contains(hhref,'1234'))"> 
    <li> 
    <a href="{$hhref}" title="{$pdate}"> 
     <xsl:value-of select="title"/> 
    </a> 
    </li> 
</xsl:if> 

1
<xsl:if test="not contains(hhref,'1234')"> 
+0

क्या ऑपरेटर बिना किसी कोष्ठक के काम करता है? यदि हां, तो मुझे यह नहीं पता था। – Cerebrus

+1

@ सेरेब्रस यह एक्सएसएलटी 2.0 में करता है, लेकिन 1.0 में नहीं – Stijn

2

Zvon.org XSLT Reference से:

XPath function: boolean contains (string, string) 

उम्मीद है कि इससे मदद मिलती है।

6

मानक XPath फ़ंक्शन contains() का उपयोग करें।

समारोह: बूलियनशामिल (स्ट्रिंग, स्ट्रिंग)

contains समारोह TRUE देता पहला तर्क स्ट्रिंग दूसरा तर्क स्ट्रिंग है, और अन्यथा गलत

संबंधित मुद्दे