1

XSLTを作成してスプレッドシートMLを作成し、Excelでさらに読み取って、改行で問題が発生するようにしようとしています。セルデータに改行を追加する必要があります。私はExcelでサンプルを作成して改行のExcelのアイデアを確認し、次のようになりました。

<Data>abc&#10;def</Data>

ここでの&#10;参照は改行であり、Excelはファイルを読み戻すときにそれを正しく理解します。XSLTで同じものを作成しようとしていますが、当然、代わりに真の0x0A(LF)文字を取得するため、XMLは次のようになります。

<Data>abc
def</Data

これは、改行を表すExcelの方法と一致していないようで、Excelでファイルを開くと、改行が表示されません。

私は問題を調査しようとしましたが、実際には解決策を提供せず、Excelのバグである可能性があることを示唆する次の短い議論以外は何も得られませんでした。更新:私が理解している限り、これは仕様で「エンコードの事故」と呼ばれるものであり、Excelがそうであるように、XMLパーサーはそれらに依存してはなりません。)

これをなんとかして回避し&#10;、LF文字の代わりにリテラルを出力に入れる方法はありますか?それとも別の方法でこれを解決しますか?

4

1 に答える 1

3

LFはい、Excel には、文字とその文字への文字参照を区別する独自の方法があり&#10;ます。

文字参照を強制したい場合は、XSLT 1.0 で実行する<xsl:text disable-output-escaping="yes"><![CDATA[&#10;]]></xsl:text>のが強引な方法だと思います。

于 2012-11-07T12:08:29.280 に答える