首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从节点XSLT中删除所有\n\r字符?

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

Stack Overflow用户
提问于 2009-02-16 09:41:41
回答 2查看 11.2K关注 0票数 3

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

$LOG: 08880xbpnd $ [医]坐立不安 df 标清 消防处 F 标清 消防处

我想知道是否所有的文本都会转到一行,这样就可以传递到javascript函数了吗?所以结果会是这样

$LOG: 08880xbpnd $fhdsafidsfsddfsdfsdfsdfsd

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-02-16 14:35:29

不幸的是, 规范化-空间() 函数(用于andynormancx的答案)不仅仅是删除换行符

它删除所有前导和尾随空格以及,它用单个空格字符替换任何内部连体空格。

在许多情况下,我们只想删除一种类型的空白字符(如当前的新行(CR+LF解析器将其读取到仅仅LF时会自动标准化)。

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

代码语言:javascript
复制
translate(., '
', '')

返回从删除任何换行符的当前节点的字符串值中获得的字符串。

这里是一个示例

代码语言:javascript
复制
<xsl:stylesheet version="1.0" 
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output omit-xml-declaration="yes" indent="yes"/>

  <xsl:template match="node()|@*">
    <xsl:copy>
      <xsl:apply-templates select="node()|@*"/>
    </xsl:copy>
  </xsl:template>

  <xsl:template match="text()">
    <xsl:value-of 
     select="translate(.,'&#xA;','')"/>
  </xsl:template>
</xsl:stylesheet>

当将上述转换应用于此源XML文档时,则为。

代码语言:javascript
复制
<t>
$LOG: 08880xbpnd $
"embedded    blanks    must    stay"
df
sd
fsd
f
sd
fsd
</t>

结果仅在一行上(视需要而定),所有嵌入的空格都保留完整的

代码语言:javascript
复制
<t>$LOG: 08880xbpnd $"embedded    blanks    must    stay"dfsdfsdfsdfsd</t>
票数 14
EN

Stack Overflow用户

发布于 2009-02-16 09:46:09

规范化-空间() XPath函数应该做您想做的事情。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/552762

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档