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

うーん、あなたが投稿したものから、私はあなたが何を間違えたのか正確にはわかりません。改行を16進数で入力したとき、アンパサンドを忘れましたか?単純な間違い。また、設計の観点から、改行には16進コードを使用することをお勧めします。これは、改行がよりクリーンで、誤って削除することが難しいためです。

このコードは機能します:

<?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 に答える