XML Tutorial/XSLT stylesheet/mod

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

Do calculation in select: 11 mod 4

   <source lang="xml">

File: Data.xml <?xml version="1.0"?> <numbers>

 <x>4</x>
 <y>3.2</y>
 <z>11</z>

</numbers>

File: Transform.xslt <?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"

 version="1.0">
 <xsl:output method="xml" omit-xml-declaration="yes" />
 <xsl:template match="numbers">
   11 mod 4 =
   <xsl:value-of select="z mod x" />
 </xsl:template>

</xsl:stylesheet> Output:

   11 mod 4 =
   3</source>
   
  

Operator mod returns the remainder from a truncating division

   <source lang="xml">

File: Data.xml <?xml version="1.0" encoding="utf-8"?>

   <number>1</number>
   <number>3</number>
   <number>4</number>
   <number>17</number>
   <number>8</number>
   <number>11</number>

File: Transform.xslt <?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet

     version="1.0"
     xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
   <xsl:template match="/">
     <Paragraph>
       <xsl:value-of select="//number[5]"/>
       <xsl:text> / </xsl:text>
       <xsl:value-of select="//number[6]"/>
       <xsl:text> = </xsl:text>
       <xsl:value-of select="//number[5] div //number[6]"/>
     </Paragraph>
     <Paragraph>
       <xsl:value-of select="//number[5]"/>
       <xsl:text> mod </xsl:text>
       <xsl:value-of select="//number[6]"/>
       <xsl:text> = </xsl:text>
       <xsl:value-of select="//number[5] mod //number[6]"/>
     </Paragraph>
   </xsl:template>

</xsl:stylesheet> Output: <?xml version="1.0" encoding="UTF-8"?><Paragraph>8 / 11 = 0.7272727272727273</Paragraph><Paragraph>8 mod 11 = 8</Paragraph></source>


Tests of the mod operator in XPath 1.0

   <source lang="xml">

File: Data.xml

File: Transform.xslt <?xml version="1.0"?> <xsl:stylesheet version="1.0"

 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output method="text"/>
 <xsl:template match="/">
   <xsl:text>Tests of the mod operator in XPath 1.0
</xsl:text>
   <xsl:text>
  9 mod 3 = </xsl:text>
   <xsl:value-of select="9 mod 3"/>
   <xsl:text>
  9 mod 3.8 = </xsl:text>
   <xsl:value-of select="9 mod 3.8"/>
   <xsl:text>
  9 mod "4" = </xsl:text>
   <xsl:value-of select="9 mod "4""/>
   <xsl:text>
  9 mod "Q" = </xsl:text>
   <xsl:value-of select="9 mod "Q""/>
   <xsl:text>
  9 mod true() = </xsl:text>
   <xsl:value-of select="9 mod true()"/>
   <xsl:text>
  9 mod false() = </xsl:text>
   <xsl:value-of select="9 mod false()"/>
 </xsl:template>

</xsl:stylesheet> Output: Tests of the mod operator in XPath 1.0

 9 mod 3 = 0
 9 mod 3.8 = 1.4000000000000004
 9 mod "4" = 1
 9 mod "Q" = NaN
 9 mod true() = 0
 9 mod false() = NaN</source>
   
  

Tests of the mod operator in XPath 2.0

   <source lang="xml">

File: Transform.xslt <?xml version="1.0"?> <xsl:stylesheet version="2.0"

 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output method="text"/>
 <xsl:template match="/">
   <xsl:text>Tests of the mod operator in XPath 2.0
</xsl:text>
   <xsl:text>
  9 mod 3 = </xsl:text>
   <xsl:value-of select="9 mod 3"/>
   <xsl:text>
  9 mod 3.8 = </xsl:text>
   <xsl:value-of select="9 mod 3.8"/>
   <xsl:text>
  9 mod number("4") = </xsl:text>
   <xsl:value-of select="9 mod number("4")"/>
   <xsl:text>
  9 mod number("Q") = </xsl:text>
   <xsl:value-of select="9 mod number("Q")"/>
   <xsl:text>
  9 mod number(true()) = </xsl:text>
   <xsl:value-of select="9 mod number(true())"/>
   <xsl:text>
  9 mod number(false()) = </xsl:text>
   <xsl:value-of select="9 mod number(false())"/>
 </xsl:template>

</xsl:stylesheet> Output: Tests of the mod operator in XPath 2.0

 9 mod 3 = 0
 9 mod 3.8 = 1.4
 9 mod number("4") = 1
 9 mod number("Q") = NaN
 9 mod number(true()) = 0
 9 mod number(false()) = NaN</source>