2013-02-28 57 views
1

我一直在试图取代发生在与换行符schemaLocation属性的所有空格字符。我发现如何做到这一点的许多变化。最简单的是像XSLT换行符显示为十六进制符号

<xsl:variable name='nl'><xsl:text> 
</xsl:text></xsl:variable> 

,然后在我的更换,

<xsl:value-of select(replace($data,' ',$nl) /> 

然而,每哪种方式我试试这个,它打印的文字“#X0A;”文件

在我试图更新XSL:输出到方法=“文本”,然而这将产生许多其他奇怪的结果

我只是想换行显示,而不是“#X0A;”这

+0

避免空白。更好的方法是用' '或'' .. – 2013-03-05 12:23:09

回答

3

HMM的字符串表示,从你贴我不完全相信你做错了什么。当你在十六进制中输入换行符时,你是否忘记了&符号?一个简单的错误。而且从设计的角度来看,我建议使用十六进制代码换行,因为它是清洁,不易意外删除。

此代码:

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:output method="text"/> 

<xsl:variable name="newline"> 
    <xsl:text>&#xa;</xsl:text> 
</xsl:variable> 

<xsl:template match="/"> 
    <xsl:variable name="data"> 
    <xsl:text>This is a string</xsl:text> 
    </xsl:variable> 
    <xsl:value-of select="replace($data,' ', $newline)" /> 
</xsl:template> 

</xsl:stylesheet> 

输出是正是我们所期望:在XSLT代码

This 
is 
a 
string 
+1

分配变量如果你的目标是把换行符的属性,这样说的:http://stackoverflow.com/questions/2004386/how-to-save-换行功能于XML的属性 – ljdelight 2013-03-01 02:58:03

+0

'' ='' 任一项应该工作.. 1为在良好的方向引导.. – 2013-03-05 12:22:24

相关问题