English | Français | Deutsch | Magyar | >> 中文 << | Polski ZVON > Tutorials > XSLT Tutorial
>> 页 43 << | 上一条 | 下一条 | 目录 | 元素索引

XSLT stylesheet 1 中,函数 boolean() 的参数是字符串。字符串的值为真的充分必要条件就是字符串的长度不为零。 XSLT stylesheet 2 把文字转换为数字再传给 boolean() 函数。 XSLT stylesheet 3 把 "0" 分别作为字符串和数字进行比较。 XSLT stylesheet 4 把节点集作为 boolean() 函数的参数。

XSLT stylesheet 1

XML源码
<source>

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

</source>

输出
<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>

用HTML察看
text boolean
124 true
AB234 true
-16 true
0 true
false
false true
XSLT stylesheet
<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>


XSLT stylesheet 2

XML源码
<source>

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

</source>

输出
<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>

用HTML察看
text number boolean
124 124 true
AB234 NaN false
-16 -16 true
0 0 false
NaN false
false NaN false
XSLT stylesheet
<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>


XSLT stylesheet 3

XML源码
<source>

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

</source>

输出
<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>

用HTML察看

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

XSLT stylesheet
<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>


XSLT stylesheet 4

XML源码
<source>

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

</source>

输出
<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>

用HTML察看
node-set boolean
/ true
//text true
//number false
//text[23] false
XSLT stylesheet
<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>