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

函数 number 将参数转化为数字。 XSLT stylesheet 1 展示了字符串的转换, XSLT stylesheet 2 转换布尔类型的值: true 和 false。

XSLT stylesheet 1

XML源码
<source>

<text>124</text>
<text>1 2 4</text>
<text>-16</text>
<text>- 16</text>
<text>125.258</text>
<text>125.</text>
<text>ASDF</text>
<text>A123</text>
<text>true</text>
<text>false()</text>

</source>

输出
<TABLE border="1">
  <TR>
     <TH>text</TH>
     <TH>number</TH>
  </TR>
  <TR>
     <TD>124</TD>
     <TD>124</TD>
  </TR>
  <TR>
     <TD>1 2 4</TD>
     <TD>NaN</TD>
  </TR>
  <TR>
     <TD>-16</TD>
     <TD>-16</TD>
  </TR>
  <TR>
     <TD>- 16</TD>
     <TD>NaN</TD>
  </TR>
  <TR>
     <TD>125.258</TD>
     <TD>125.258</TD>
  </TR>
  <TR>
     <TD>125.</TD>
     <TD>125</TD>
  </TR>
  <TR>
     <TD>ASDF</TD>
     <TD>NaN</TD>
  </TR>
  <TR>
     <TD>A123</TD>
     <TD>NaN</TD>
  </TR>
  <TR>
     <TD>true</TD>
     <TD>NaN</TD>
  </TR>
  <TR>
     <TD>false()</TD>
     <TD>NaN</TD>
  </TR>
</TABLE>

用HTML察看
text number
124 124
1 2 4 NaN
-16 -16
- 16 NaN
125.258 125.258
125. 125
ASDF NaN
A123 NaN
true NaN
false() NaN
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>
          </TR>
          <xsl:for-each select="//text">
               <TR>
                    <TD>
                         <xsl:value-of select="."/>
                    </TD>
                    <TD>
                         <xsl:value-of select="number()"/>
                    </TD>
               </TR>
          </xsl:for-each>
     </TABLE>
</xsl:template>


</xsl:stylesheet>


XSLT stylesheet 2

XML源码
<source>

<text>124</text>
<text>1 2 4</text>
<text>-16</text>
<text>- 16</text>
<text>125.258</text>
<text>125.</text>
<text>ASDF</text>
<text>A123</text>
<text>true</text>
<text>false()</text>

</source>

输出
<TABLE border="1">
  <TR>
     <TH>text</TH>
     <TH>number</TH>
  </TR>
  <TR>
     <TD>true</TD>
     <TD>NaN</TD>
  </TR>
  <TR>
     <TD>false()</TD>
     <TD>NaN</TD>
  </TR>
</TABLE>
<P>but:</P>
<TABLE border="1">
  <TR>
     <TH>function</TH>
     <TH>number</TH>
  </TR>
  <TR>
     <TD>true()</TD>
     <TD>1</TD>
  </TR>
  <TR>
     <TD>false()</TD>
     <TD>0</TD>
  </TR>
  <TR>
     <TD>5&gt;7</TD>
     <TD>0</TD>
  </TR>
  <TR>
     <TD>5&lt;7</TD>
     <TD>1</TD>
  </TR>
</TABLE>

用HTML察看
text number
true NaN
false() NaN

but:

function number
true() 1
false() 0
5>7 0
5<7 1
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>
          </TR>
          <xsl:for-each select="//text[text() = 'true' or text() = 'false()']">
               <TR>
                    <TD>
                         <xsl:value-of select="."/>
                    </TD>
                    <TD>
                         <xsl:value-of select="number()"/>
                    </TD>
               </TR>
          </xsl:for-each>
     </TABLE>
     <P>
          <xsl:text>but:</xsl:text>
     </P>
     <TABLE border="1">
          <TR>
               <TH>function</TH>
               <TH>number</TH>
          </TR>
          <TR>
               <TD>true()</TD>
               <TD>
                    <xsl:value-of select="number(true())"/>
               </TD>
          </TR>
          <TR>
               <TD>false()</TD>
               <TD>
                    <xsl:value-of select="number(false())"/>
               </TD>
          </TR>
          <TR>
               <TD>5>7</TD>
               <TD>
                    <xsl:value-of select="number(5 > 7)"/>
               </TD>
          </TR>
          <TR>
               <TD>5<7</TD>
               <TD>
                    <xsl:value-of select="number(5<7)"/>
               </TD>
          </TR>
     </TABLE>
</xsl:template>


</xsl:stylesheet>