这样比较是区分大小写的,现在是想不区分大小写,
偶知道在http://www.w3.org/TR/WD-xsl下可用$ieq$来比较,
但是在http://www.w3.org/1999/XSL/Transform就行不通了,
有什么方法吗?
4 个解决方案
#1
<?xml version='1.0' encoding='gb2312'?>
<?xml-stylesheet type="text/xsl" href="csdn0002_translate.xsl"?>
<root>
<user name="ssm"></user>
<user name="Ssm"></user>
<user name="SSM"></user>
<user name="CSDN"></user>
</root>
csdn0002_translate.xsl:
<?xml version="1.0" encoding="gb2312"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:for-each select="/root/user">
<xsl:variable name="small">abcdefghijklmnopqrstuvwxyz</xsl:variable>
<xsl:variable name="big">ABCDEFGHIJKLMNOPQRSTUVWXYZ</xsl:variable>
<xsl:if test="translate(@name,$big,$small) ='ssm'" >
<xsl:value-of select="@name"/><br/>
</xsl:if> </xsl:for-each>
</xsl:template>
</xsl:stylesheet>
<?xml-stylesheet type="text/xsl" href="csdn0002_translate.xsl"?>
<root>
<user name="ssm"></user>
<user name="Ssm"></user>
<user name="SSM"></user>
<user name="CSDN"></user>
</root>
csdn0002_translate.xsl:
<?xml version="1.0" encoding="gb2312"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:for-each select="/root/user">
<xsl:variable name="small">abcdefghijklmnopqrstuvwxyz</xsl:variable>
<xsl:variable name="big">ABCDEFGHIJKLMNOPQRSTUVWXYZ</xsl:variable>
<xsl:if test="translate(@name,$big,$small) ='ssm'" >
<xsl:value-of select="@name"/><br/>
</xsl:if> </xsl:for-each>
</xsl:template>
</xsl:stylesheet>
#2
楼上强
#3
只能用函数来进行转换吗?不知道对性能有多少影响,想不用函数的说.
如果没有,就只好这样了.
如果没有,就只好这样了.
#4
XML本身对大小是敏感的
translate是xpath里自带函数,大小写区别,必须使用
translate是xpath里自带函数,大小写区别,必须使用
#1
<?xml version='1.0' encoding='gb2312'?>
<?xml-stylesheet type="text/xsl" href="csdn0002_translate.xsl"?>
<root>
<user name="ssm"></user>
<user name="Ssm"></user>
<user name="SSM"></user>
<user name="CSDN"></user>
</root>
csdn0002_translate.xsl:
<?xml version="1.0" encoding="gb2312"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:for-each select="/root/user">
<xsl:variable name="small">abcdefghijklmnopqrstuvwxyz</xsl:variable>
<xsl:variable name="big">ABCDEFGHIJKLMNOPQRSTUVWXYZ</xsl:variable>
<xsl:if test="translate(@name,$big,$small) ='ssm'" >
<xsl:value-of select="@name"/><br/>
</xsl:if> </xsl:for-each>
</xsl:template>
</xsl:stylesheet>
<?xml-stylesheet type="text/xsl" href="csdn0002_translate.xsl"?>
<root>
<user name="ssm"></user>
<user name="Ssm"></user>
<user name="SSM"></user>
<user name="CSDN"></user>
</root>
csdn0002_translate.xsl:
<?xml version="1.0" encoding="gb2312"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:for-each select="/root/user">
<xsl:variable name="small">abcdefghijklmnopqrstuvwxyz</xsl:variable>
<xsl:variable name="big">ABCDEFGHIJKLMNOPQRSTUVWXYZ</xsl:variable>
<xsl:if test="translate(@name,$big,$small) ='ssm'" >
<xsl:value-of select="@name"/><br/>
</xsl:if> </xsl:for-each>
</xsl:template>
</xsl:stylesheet>
#2
楼上强
#3
只能用函数来进行转换吗?不知道对性能有多少影响,想不用函数的说.
如果没有,就只好这样了.
如果没有,就只好这样了.
#4
XML本身对大小是敏感的
translate是xpath里自带函数,大小写区别,必须使用
translate是xpath里自带函数,大小写区别,必须使用