-
<?xml version="1.0" encoding="UTF-8"?>
<numbers>
<number>-1</number>
<number>0</number>
<number>0.1</number>
<number>1</number>
<number>2.1</number>
<number>abc</number>
</numbers>
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" version="1.0" encoding="gb2312" indent="yes"/>
<xsl:template match="/numbers">
<xsl:for-each select="number">
<xsl:value-of select="concat('convert ',.,' to boolean:',boolean(number())) "/>
<xsl:text>
</xsl:text>
</xsl:for-each>
<xsl:value-of select="concat('convert element number to boolean:',boolean(number)) "/>
<xsl:text>
</xsl:text>
<xsl:value-of select="concat('convert element noexistele to boolean:',boolean(noexistele)) "/>
</xsl:template>
</xsl:stylesheet>
convert 2.1 to boolean:true
convert abc to boolean:false
convert element number to boolean:true
convert element noexistele to boolean:false
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" version="1.0" encoding="gb2312" indent="yes"/>
<xsl:template match="/root">
<xsl:value-of select="concat('not(element) is:',not(element)) "/>
<xsl:text>
</xsl:text>
<xsl:value-of select="concat('not(noexistele) is:',not(noexistele)) "/>
</xsl:template>
</xsl:stylesheet>
5、lang()
lang(string)函数用于判断上下文节点的xml:lang属性是否等于参数string。如果上下文节点没有设置xml:lang属性,lang()将按照上下文节点的最近祖先节点继承,如果都没有则返回false;lang()函数不对上下文的节点内容进行判断,只是判断其xml:lang属性;在比较的时候,不区分大小写。
简单示例:
<?xml version="1.0" encoding="UTF-8"?>
<article>
<title xml:lang="en">the article title</title>
<para xml:lang="zh-cn">文章段落</para>
<para xml:lang="FFF">文章段落</para>
</article>
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" version="1.0" encoding="gb2312" indent="yes"/>
<xsl:template match="/article">
<xsl:apply-templates select="title"/>
<xsl:apply-templates select="para"/>
</xsl:template>
<xsl:template match="title">
<xsl:value-of select="lang('en')"/>
<xsl:text>
</xsl:text>
</xsl:template>
<xsl:template match="para">
<xsl:value-of select="lang('zh-cn')"/>
<xsl:text>
</xsl:text>
</xsl:template>
</xsl:stylesheet>