1

我一直在尝试用换行符替换 schemaLocation 属性中出现的所有空格字符。我发现了很多关于如何做到这一点的变化。最简单的是类似

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

然后代替我,

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

但是,无论我尝试哪种方式,它都会打印文字'#x0A;' 在文件中

我尝试将 XSL:OUTPUT 更新为 method="text" 但这会产生许多其他奇怪的结果

我只是想出现一个换行符,而不是“#x0A;” 这个的字符串表示

4

1 回答 1

3

嗯,从你发布的内容来看,我不确定你做错了什么。当您以十六进制键入换行符时,您是否忘记了与号?一个简单的错误。从设计的角度来看,我建议使用十六进制代码作为换行符,因为它更干净且难以意外删除。

此代码有效:

<?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>

输出正是我们所期望的:

This
is
a
string
于 2013-03-01T02:50:30.610 回答