2017-09-29 13 views
1

XSL 1.0を使用してXMLをPDFに変換するには、Apache FOPを使用しています。XSLT PDFで " "または改行の特殊文字をエスケープする方法はありますか?

私は、XMLノードに

<ABC>This is one line&#xD; 
    This is second line&#xD; 
This is third line</ABC> 

をしましたし、私は、ノードすなわち

This is one line 
    This is second line 
    This is third line 

が、それは1行だけ来ているような出力をしたいです。 xslで "&#xD"をエスケープするソリューションはありますか?次のコードを使用してnodeの値を取得します。あなたの問題を解決するための方法で

<xsl:value-of select="ABC" disable-output-escaping="yes" /> 
+0

[XSLT新しい行が保存されない可能性がある]重複している可能性があります(https://stackoverflow.com/questions/36802214/xslt-new-lines-not-being-preserved) – lfurini

答えて

2

お探しの物件はlinefeed-treatmentです。

別個の段落として改行で区切られたテキストを処理する効果を有するであろう "preserve"に設定

ので、これ

<fo:block linefeed-treatment="preserve">A 
B 
C</fo:block> 

ようなブロックが出力に3行を生成する

A 
B 
C 
+0

ありがとうございます。これは私を助け、私のために働いた。 –

0

たちはその後、試合に分割され、唯一の一致しない文字列を使用するという事実を利用し

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:xs="http://www.w3.org/2001/XMLSchema" 
    exclude-result-prefixes="xs" 
    version="2.0"> 
    <xsl:template match="/"> 
     <xsl:analyze-string select="ABC" regex="&#xD;"> 
      <xsl:matching-substring></xsl:matching-substring> 
      <xsl:non-matching-substring> 
       <xsl:value-of select="."/> 
      </xsl:non-matching-substring> 
     </xsl:analyze-string> 
    </xsl:template> 
</xsl:stylesheet> 

などの解析文字列です。

+3

これは、 XSL 1.0」を参照してください。 –

+0

いいえ、それはちょっとしたフロイドのスリップです。 –

関連する問題