XML/XSLT stylesheet/every

Материал из Web эксперт
Версия от 08:26, 26 мая 2010; Admin (обсуждение | вклад) (1 версия)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

every and some operator

File: Data.xml

File: Transform.xslt
<?xml version="1.0"?>
<xsl:stylesheet version="2.0" 
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xsl:output method="text"/>
 
  <xsl:variable name="English-months" as="xs:string*"
    select="("January", "February", "March", "April", 
             "May", "June", "July", "August", 
             "September", "October", "November", 
             "December")"/>
  <xsl:template match="/">
    <xsl:text>  If ANY month name has a string-length() </xsl:text>
    <xsl:text>&#xA;    greater than 4, print "Yes," otherwise</xsl:text>
    <xsl:text>&#xA;    print "No"&#xA;&#xA;         </xsl:text>
    <xsl:value-of 
      select="if (some $m in $English-months satisfies 
              (string-length($m) &gt; 4)) then "Yes" else "No""/>
    <xsl:text>&#xA;</xsl:text>
    <xsl:text>&#xA;&#xA;  If EVERY month name has a string-</xsl:text>
    <xsl:text>length() &#xA;    greater than 4, print "Yes," </xsl:text>
    <xsl:text>otherwise&#xA;    print "No"&#xA;&#xA;         </xsl:text>
    <xsl:value-of 
      select="if (every $m in $English-months satisfies 
              (string-length($m) &gt; 4)) then "Yes" else "No""/>
    <xsl:text>&#xA;</xsl:text>
  </xsl:template>
</xsl:stylesheet>
Output:
  If ANY month name has a string-length() 
    greater than 4, print "Yes," otherwise
    print "No"
         Yes

  If EVERY month name has a string-length() 
    greater than 4, print "Yes," otherwise
    print "No"
         No