关闭

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

标签: xsltxslstylesheetxmlc#语言
6045人阅读 评论(0) 收藏 举报
分类:

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>

0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

xpath中normalize-space的实际应用

normalize,字面意思就是正规化 加入space  大概意思就是空格的处理了 官方解释是这样的: 通过去掉前导和尾随空白并使用单个空格替换一系列空白字符,使空白标准化。如果省略了该参数,上下文节点的字符串值将标准化并返回。 刚好在实际项目中碰到了这样的一个问题, 定位一个下来的时...
  • zhouxuan623
  • zhouxuan623
  • 2016-04-25 14:18
  • 1881

XSLT文件中内嵌脚本

最近开始学习XML,对于XML的格式化用XSLT来实现还是不错的,这样在要展示的页面上只须加载XML和XSLT文件的关联即可,要修改样式也不用跑到展示页面了,直接在XSLT里修改即可。不过XSLT用起来不是太顺手,和一般的编程习惯有所不同,但实现却是简单的。以下是我在项目中做的一个XSLT模版,用做...
  • ztmaster
  • ztmaster
  • 2005-12-28 17:53
  • 1056

String 常用方法最优算法实现总结 (二)

1. String getOrderedString(boolean isDuplicated, String … str) 说明:  Orders all characters in the input strings and return the ordered stri...
  • chndata
  • chndata
  • 2015-06-25 13:58
  • 946

xpath抓取的值有空格换行符等问题

解决办法: normalize-space() 例子: 原来的xpath为: user=selector.xpath('//*[@id="Con"]/tr[1]/th/text()') 修改后: user...
  • u012836179
  • u012836179
  • 2017-04-10 16:22
  • 2392

XSL中的空格

最近需要字XSL中输出空格,很是烦人,原来在HTML中的空格经常用&nbsp;来表示的,但在XSL中为非法。终于发现了一个办法: 注意中间有个空格。
  • zhaoweikid
  • zhaoweikid
  • 2004-11-03 23:48
  • 3102

java的xpath语法

常用Xpath对照表 常用的XPATH 表达式 说明
  • dyoldfish
  • dyoldfish
  • 2007-09-06 12:45
  • 18149

XSLT学习(2)

  一 XSLT 1.0支持的五种数据类型number、boolean、string、node-set、tree相互之间的转化       到 从 ...
  • wormwormwormworm
  • wormwormwormworm
  • 2007-12-15 14:10
  • 1149

《数据结构、算法与应用》6.(递归查询数组中是否包含某元素).

最近在读《数据结构、算法与应用》这本书,把书上的习题总结一下,用自己的方法来实现了这些题,可能在效率,编码等方面存在着很多的问题,也可能是错误的实现,如果大家在看这本书的时候有更优更好的方法来实现,还请大家多多留言交流多多指正,谢谢  6. 试编写一个递归函数来确定元素 x 是否属于数组 ...
  • oktears
  • oktears
  • 2014-04-13 19:40
  • 1242

SQL 性能调优

个人笔记
  • aphy358
  • aphy358
  • 2015-11-04 13:23
  • 172
    个人资料
    • 访问:2463820次
    • 积分:33473
    • 等级:
    • 排名:第159名
    • 原创:910篇
    • 转载:0篇
    • 译文:0篇
    • 评论:627条
    文章分类
    最新评论