XSLT中用normalize-space函数来清除元素的前后空格

原创 2006年05月17日 18:18:00

XSLT中用normalize-space函数来清除元素的前后空格

 左直拳

按照我的理解,XML文件存储数据,XSLT负责显示这些数据。同样的XML文件,结合不同的XSLT,结果呈现出来的风格、样式可以大相径庭。

可能也是由于功能强大的原因,XSLT有许多语法、函数,但介绍的资料似乎很少,应用起来常常费心劳力。

现在有一个问题,从XML中获取的数据,在XSLT中进行分析之前怎样祛除数据前后的空格?如:

<xsl:choose>

<xsl:when test=".[a='']" >

<p>元素a为空</p>

</xsl:when>

<xsl:when test=".[b='']" >

<p>元素b为空</p>

</xsl:when>

<xsl:otherwise>

<p>元素ab都不为空</p>

</xsl:otherwise>

</xsl:choose>

 

结果,对于ab表面上看似乎为空的数据,如<a>  </a><b> </b>,全都输出了元素ab都不为空这样的字样。很显然,在比较的时候没有删除元素里前后的空格。

要怎样才能删除这些空格?如果在C#或者其他什么语言里,早一个”Trim”飞过去把它搞定了。

辛辛苦苦跑到网上搜索一翻,发现可以用normalize-space这个函数。

可我怎么试都没有成功,说是不支持normalize-space。后来看了看XSLT的文件头,差点吐血,原来我用的是老版本的命名空间:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">

改成新版本的命名空间:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

问题解决了。

<xsl:choose>

<xsl:when test="normalize-space(a)=''" >

<p>元素a为空</p>

</xsl:when>

<xsl:when test="normalize-space(b)=''" >

<p>元素b为空</p>

</xsl:when>

<xsl:otherwise>

<p>元素ab都不为空</p>

</xsl:otherwise>

</xsl:choose>

版权声明:本文为博主原屙文章,喜欢你就担走。 举报

相关文章推荐

xpath中normalize-space的实际应用

normalize,字面意思就是正规化 加入space  大概意思就是空格的处理了 官方解释是这样的: 通过去掉前导和尾随空白并使用单个空格替换一系列空白字符,使空白标准化。如果省略了该参数,上下文节...

伪元素,使用伪元素来清除浮动

伪元素: 在页面上不存在的元素,但是可以通过css来添加上去 种类: :before:after 注意:每个元素都有自己的伪元素 使用伪元素来清除浮动: .clearfix:after {...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

js删除数组元素、清空数组的简单方法

一、清空数组var ary = [1,2,3,4]; ary.splice(0,ary.length);//清空数组 console.log(ary); // 输出 [],空数组,即被清空了二、删...

js删除数组元素、清空数组的简单方法

原文:http://www.jb51.net/article/89335.htm 一、清空数组 1 2 3 var ary = [1,...

清除 C++ vector 中的冗余元素

介绍C++中,使用sort()和unique()来清除vector中的冗余元素,以及其他方案

数组中元素前后互换

import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; /*从键盘...

定义一个函数清除该数组的重复元素

/* 11.目前有数组” int[] arr = {11,2, 4, 2, 10, 11}, 定义一个函数清除该数组的重复元素,返回的数组存储了那些非重复的元素而且 数组不准浪费长度。分析: ...

自定义带一键清除的EditText

import android.content.Context; import android.graphics.Rect; import android.graphics.drawable.Dra...

css之清除浮动

CSS技巧(一):清除浮动 什么是CSS清除浮动? 在非IE浏览器(如Firefox)下,当容器的高度为auto,且容器的内容中有浮动(float为left或right)的...

Java中list循环清除元素

因为大家都知道ArrayList,LinkedList没有使用synchronized对线程同步作任何处理,也就是说它们在同一时刻可以由多个线程访问,不是线程安全的,所以在移除的过程中会产生莫名奇妙的...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)