当前位置:  开发笔记 > 编程语言 > 正文

从节点XSLT中删除所有\n\r \n字符?

如何解决《从节点XSLT中删除所有\n\r\n字符?》经验,为你挑选了2个好方法。

想知道你能帮我吗?我在xml中有节点,如下所示

$ LOG:08880xbpnd $
fhdsafidsfsd
df
sd
fsd
f
sd
fsd

我想知道是否还有将所有文本转到一行,以便它可以传递到javascript函数?所以它会像这样

$ LOG:08880xbpnd $ fhdsafidsfsddfsdfsdfsdfsd

Dimitre Nova.. 13

不幸的是,该normalize-space()函数(在andynormancx的答案中使用)不仅仅是删除换行符.

它删除所有前导和尾随空格,并用一个空格字符替换任何一组内部可用空格.

在许多情况下,我们只想删除一种类型的空格字符(如当前情况 - 新行(CR + LF在XML解析器读取时自动规范化为LF).

正确和安全的方法是使用标准的XPath translate()函数:

translate(., '
', '')

返回从当前节点的字符串值获取的字符串,其中删除了任何换行符.

这是一个例子:


 

  
    
      
    
  

  
    
  

在此源XML文档上应用上述转换时:


$LOG: 08880xbpnd $
"embedded    blanks    must    stay"
df
sd
fsd
f
sd
fsd

结果仅在一行上,根据需要,所有嵌入的空格保持不变:

$LOG: 08880xbpnd $"embedded    blanks    must    stay"dfsdfsdfsdfsd


andynormancx.. 7

该正常化空间() XPath函数应该做你想要什么.



1> Dimitre Nova..:

不幸的是,该normalize-space()函数(在andynormancx的答案中使用)不仅仅是删除换行符.

它删除所有前导和尾随空格,并用一个空格字符替换任何一组内部可用空格.

在许多情况下,我们只想删除一种类型的空格字符(如当前情况 - 新行(CR + LF在XML解析器读取时自动规范化为LF).

正确和安全的方法是使用标准的XPath translate()函数:

translate(., '
', '')

返回从当前节点的字符串值获取的字符串,其中删除了任何换行符.

这是一个例子:


 

  
    
      
    
  

  
    
  

在此源XML文档上应用上述转换时:


$LOG: 08880xbpnd $
"embedded    blanks    must    stay"
df
sd
fsd
f
sd
fsd

结果仅在一行上,根据需要,所有嵌入的空格保持不变:

$LOG: 08880xbpnd $"embedded    blanks    must    stay"dfsdfsdfsdfsd



2> andynormancx..:

该正常化空间() XPath函数应该做你想要什么.

推荐阅读
吻过彩虹的脸_378
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有