English | Français | Deutsch | Magyar | 中文 | >> Polski << ZVON > Tutorials > XSLT Tutorial
>> Strona 43 << | Poprzedni | Następny | Zawartość | Indeks elementu

Arkusz stylów XSLT 1 pokazuje przykład, w którym łańcuchy znaków są argumentami funkcji boolean(). Łańcuch taki ma wartość logiczną true (prawda) wtedy i tylko wtedy gdy jego długość jest różna od zera. Arkusz stylów XSLT 2 demonstruje tekst przekształcony do typu liczbowego, wtedy użyty jako argument funkcji boolean(). Arkusz stylów XSLT 3 porównuje "0" jako łańcuch znaków oraz jako typ liczbowy. Arkusz stylów XSLT 4 używa zbiorów węzłów jako argumentów funkcji boolean().

Arkusz stylów XSLT 1

Źródło XML
<source>

<text>124</text>
<text>AB234</text>
<text>-16</text>
<text>0</text>
<text/>
<text>false</text>

</source>

Dane wyjściowe
<TABLE border="1">
  <TR>
     <TH>text</TH>
     <TH>boolean</TH>
  </TR>
  <TR>
     <TD>124</TD>
     <TD>true</TD>
  </TR>
  <TR>
     <TD>AB234</TD>
     <TD>true</TD>
  </TR>
  <TR>
     <TD>-16</TD>
     <TD>true</TD>
  </TR>
  <TR>
     <TD>0</TD>
     <TD>true</TD>
  </TR>
  <TR>
     <TD/>
     <TD>false</TD>
  </TR>
  <TR>
     <TD>false</TD>
     <TD>true</TD>
  </TR>
</TABLE>

Widok HTML
text boolean
124 true
AB234 true
-16 true
0 true
false
false true
Arkusz stylów XSLT
<xsl:stylesheet version = '1.0'
     xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>

<xsl:template match="/">
     <TABLE border="1">
          <TR>
               <TH>text</TH>
               <TH>boolean</TH>
          </TR>
          <xsl:for-each select="//text">
               <TR>
                    <TD>
                         <xsl:value-of select="."/>
                         <xsl:text/>
                    </TD>
                    <TD>
                         <xsl:value-of select="boolean(text())"/>
                    </TD>
               </TR>
          </xsl:for-each>
     </TABLE>
</xsl:template>


</xsl:stylesheet>


Arkusz stylów XSLT 2

Źródło XML
<source>

<text>124</text>
<text>AB234</text>
<text>-16</text>
<text>0</text>
<text/>
<text>false</text>

</source>

Dane wyjściowe
<TABLE border="1">
  <TR>
     <TH>text</TH>
     <TH>number</TH>
     <TH>boolean</TH>
  </TR>
  <TR>
     <TD>124</TD>
     <TD>124</TD>
     <TD>true</TD>
  </TR>
  <TR>
     <TD>AB234</TD>
     <TD>NaN</TD>
     <TD>false</TD>
  </TR>
  <TR>
     <TD>-16</TD>
     <TD>-16</TD>
     <TD>true</TD>
  </TR>
  <TR>
     <TD>0</TD>
     <TD>0</TD>
     <TD>false</TD>
  </TR>
  <TR>
     <TD/>
     <TD>NaN</TD>
     <TD>false</TD>
  </TR>
  <TR>
     <TD>false</TD>
     <TD>NaN</TD>
     <TD>false</TD>
  </TR>
</TABLE>

Widok HTML
text number boolean
124 124 true
AB234 NaN false
-16 -16 true
0 0 false
NaN false
false NaN false
Arkusz stylów XSLT
<xsl:stylesheet version = '1.0'
     xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>

<xsl:template match="/">
     <TABLE border="1">
          <TR>
               <TH>text</TH>
               <TH>number</TH>
               <TH>boolean</TH>
          </TR>
          <xsl:for-each select="//text">
               <TR>
                    <TD>
                         <xsl:value-of select="."/>
                         <xsl:text/>
                    </TD>
                    <TD>
                         <xsl:value-of select="number(text())"/>
                         <xsl:text/>
                    </TD>
                    <TD>
                         <xsl:value-of select="boolean(number(text()))"/>
                    </TD>
               </TR>
          </xsl:for-each>
     </TABLE>
</xsl:template>


</xsl:stylesheet>


Arkusz stylów XSLT 3

Źródło XML
<source>

<text>124</text>
<text>AB234</text>
<text>-16</text>
<text>0</text>
<text/>
<text>false</text>

</source>

Dane wyjściowe
<P>The boolean value of "0" is <B>true</B> if "0" is a string, but <B>false</B> if "0" is a number.</P>

Widok HTML

The boolean value of "0" is true if "0" is a string, but false if "0" is a number.

Arkusz stylów XSLT
<xsl:stylesheet version = '1.0'
     xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>

<xsl:template match="/">
     <P>
          <xsl:text>The boolean value of "0" is </xsl:text>
          <B>
               <xsl:value-of select="boolean(//text[text()='0'])"/>
          </B>
          <xsl:text> if "0" is a string, but </xsl:text>
          <B>
               <xsl:value-of select="boolean(number((//text[text()='0'])))"/>
          </B>
          <xsl:text> if "0" is a number.</xsl:text>
     </P>
</xsl:template>


</xsl:stylesheet>


Arkusz stylów XSLT 4

Źródło XML
<source>

<text>124</text>
<text>AB234</text>
<text>-16</text>
<text>0</text>
<text/>
<text>false</text>

</source>

Dane wyjściowe
<TABLE border="1">
  <TR>
     <TH>node-set</TH>
     <TH>boolean</TH>
  </TR>
  <TR>
     <TD>/</TD>
     <TD>true</TD>
  </TR>
  <TR>
     <TD>//text</TD>
     <TD>true</TD>
  </TR>
  <TR>
     <TD>//number</TD>
     <TD>false</TD>
  </TR>
  <TR>
     <TD>//text[23]</TD>
     <TD>false</TD>
  </TR>
</TABLE>

Widok HTML
node-set boolean
/ true
//text true
//number false
//text[23] false
Arkusz stylów XSLT
<xsl:stylesheet version = '1.0'
     xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>

<xsl:template match="/">
     <TABLE border="1">
          <TR>
               <TH>node-set</TH>
               <TH>boolean</TH>
          </TR>
          <TR>
               <TD>
                    <xsl:text>/</xsl:text>
               </TD>
               <TD>
                    <xsl:value-of select="boolean(/)"/>
               </TD>
          </TR>
          <TR>
               <TD>
                    <xsl:text>//text</xsl:text>
               </TD>
               <TD>
                    <xsl:value-of select="boolean(//text)"/>
               </TD>
          </TR>
          <TR>
               <TD>
                    <xsl:text>//number</xsl:text>
               </TD>
               <TD>
                    <xsl:value-of select="boolean(//number)"/>
               </TD>
          </TR>
          <TR>
               <TD>
                    <xsl:text>//text[23]</xsl:text>
               </TD>
               <TD>
                    <xsl:value-of select="boolean(//text[23])"/>
               </TD>
          </TR>
     </TABLE>
</xsl:template>


</xsl:stylesheet>