これは私の問題です。私は多くの場所で使用される変換文書を持っており、小さな書式変換の多くを一般的に扱います。ある特定のケースでは、結果から空白を削除する必要があります。XSLT:ノードを保存している余分な空白文字を削除
「\ nは < I>サムシング</I>上付きノートでは非常に重要な< SUP> 1 </SUP> \ nは :出力は次のようになります
: 「私は上のバリエーションを試してみました
ただし、出力からサブノードが削除されます。私は変換の一般的な処理を妨げるので、 'text()'のような普遍的なテンプレートを設定しないように非常に注意する必要があります。私はここで何かを見逃しているようです。
EDIT:Stefan-Hegnyの示唆通りに恒等変換を試しました。
<xsl:template match="title_full">
<xsl:apply-templates mode="stripwhitespace"/>
</xsl:template>
<xsl:template match="text()" mode="stripwhitespace">
<xsl:value-of select="normalize-space(translate(., '\n', ''))"/>
</xsl:template>
<xsl:template match="/ | @* | *" mode="stripwhitespace">
<xsl:apply-templates select="."/>
</xsl:template>
これは、タグの最高レベルで空白と改行を削除して、変換を正常に進めることができたという私の問題を解決しました。暗くなった疑問に対する謝罪と、あなたの援助に感謝します。
EDIT the second: 'translate'の使用は期待通りに機能しません。文字単位で動作します。代わりに部分文字列を置き換える変換を使用しました。
XML入力のreprsentative例を与えてください。 –
私が追加しなければならない例は、私が扱っているタイトルxmlの例ですが、変換は複数の段落を持つ大量の大量のテキストを受け取り、 – Snow